클래스는 변수와 함수로 구성된 묶음이며
API를 만들기 위해서는 flask_restful 라이브러리의 Resource 클래스를 상속해야 한다.
API를 처리하는 함수를 개발할 때는 HTTP Method에 따라서 동일한 기능을 제공해야 한다.
쿼리문은 MySQL Workbench에서 먼저 테스트하고 코드를 복사하여 붙여넣는 것이 좋다.
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeListResource(Resource):
def post(self):
# 1. 클라이언트가 보내준 데이터가 있으면 그 데이터를 받아준다.
data = request.get_json()
# 2. 이 정보를 DB에 저장한다.
try:
### 1. DB에 연결
connection = get_connection()
### 2. 쿼리문 만들기
query = '''insert into recipe
(name, description, num_of_servings, cook_time, directions)
values
(%s, %s, %s, %s, %s);'''
### 3. 쿼리에 매칭되는 변수 처리 => 튜.플.로.
record = (data['name'], data['description'], data['num_of_servings'], data['cook_time'], data['directions'])
### 4. 커서를 가져온다.
cursor = connection.cursor()
### 5. 쿼리문을 커서로 실행한다.
cursor.execute(query, record)
### 6. DB에 완전히 반영하기 위해서는 commit 한다.
connection.commit()
### 7. 자원 해제
cursor.close()
connection.close()
except Error as e:
if cursor is not None:
cursor.close()
if connection is not None:
connection.close()
return {'result' : 'fail', 'error' : str(e)}, 500
return {'result' : 'success'}
'Restful API' 카테고리의 다른 글
[Restful API] Python MySQL Connector select, 특정 1개 select (0) | 2024.05.21 |
---|---|
[Restful API] Python MySQL Connector insert (2) | 2024.05.21 |
[Restful API] API 경로와 Resource 클래스 연결 (0) | 2024.05.20 |
[Restful API] python flask app.py 파일 코딩 (0) | 2024.05.20 |
[Restful API] 가상환경 설정 + 프레임워크와 라이브러리 설치 (0) | 2024.05.20 |