반응형
이번 포스팅은 DB와 연결하여 클라이언트가 원하는 값을 삭제하는 방법을 설명합니다.
DB 연동 과정은 이전 포스팅을 참고해주세요.
https://luvris2.tistory.com/182
API서버 - DB 연동하기
API서버 DB연동하기 DB : MySQL Programming language : Python IDE : Visual Studio Code MySQL DB 생성 (recipe) Table 생성 (recipe, user) DB를 관리 할 수 있는 권한 설정하기 (MySQL) SQL 쿼리 use mysql;..
luvris2.tistory.com
Visual Studio Code
API 서버 구축
- 메인 파일 이름 : app.py
- 서버 URL : 로컬호스트/recipes/숫자
- 클라이언트가 원하는 값 삭제
# app.py
from flask import Flask
from flask_restful import Api
from resources.recipe_info import RecipeResource # 입력 받은 값 수정
# API 서버를 구축하기 위한 기본 구조
app = Flask(__name__)
# restfulAPI 생성
api = Api(app)
# 경로와 리소스(api코드) 연결
api.add_resource(RecipeResource, '/recipes/<int:recipe_id>') # /recipes/숫자
if __name__ == '__main__' :
app.run()
기능 설계 - 클라이언트가 원하는 값 삭제하기
- 추가 리소스 파일 : recipe.py
- 기능 : DB의 값 삭제하기 (Class=RecipeResource)
- 입력 받은 값 recipe_id 변수에 저장
- SQL Query : DELETE 이용
- request.get_json으로 입력 받은 데이터를 data 변수에 저장
- 값 입력, 수정, 삭제의 작업은 commit을 해야 수행
from flask import request
from flask_restful import Resource
import mysql.connector
from mysql_connection import get_connection # DB 연동 사용자 파일
class RecipeResource(Resource) :
# 데이터를 삭제하는 API들은 delete 함수를 사용한다.
def delete(self, recipe_id) :
data = request.get_json()
try :
connection = get_connection()
query = '''
delete from recipe
where id = %s;
'''
record = (recipe_id, )
cursor = connection.cursor()
cursor.execute(query, record)
connection.commit()
cursor.close()
connection.close()
except mysql.connector.Error as e :
print(e)
cursor.close()
connection.close()
return {"error" : str(e)}, 503 #HTTPStatus.SERVICE_UNAVAILABLE
return {"result" : "success"}, 200
POSTMAN
API 기능 테스트
- DELETE - 로컬호스트/recipes/숫자
- 원하는 숫자 입력 후 Send
MySQL
- 수정 전 : select * from recipe
- 수정 후 : delete from recipe where id = 3
- id의 값 3의 데이터 삭제
반응형