메인 app.py 코드
from flask import Flask
from flask_restful import Api
from resources.recipe import RecipeListResource
app = Flask(__name__)
api = Api(app)
# 경로(path)와 리소스(API 코드)를 연결한다.
api.add_resource( RecipeListResource , '/recipes')
if __name__ == '__main__' :
app.run()
DB에 데이터를 POST(저장)하는 코드는 아래와 같다.
라이브러리에만 저장을 했을 경우, 오류가 생기면 데이터가 전달되지 않을 수도 있다.
그래서 DB에 저장할 정보는 try - except 구문에 저장해 준다.
from flask_restful import Resource
from flask import request
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeListResource(Resource) :
def post(self) :
#1. 클라이언트가 보내준 데이터가 있으면
# 그 데이터를 받아준다.(데이터는 pstaman에서 확인)
data = request.get_json()
#2. 이 정보를 DB에 저장한다.
try :
### 1. DB에 연결
connection = get_connection()
### 2. 쿼리문 만들기
# 컬럼과 매칭되는 데이터들은 변수처리 : %s
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' : 'sueccess'}, 200
'RestFul API' 카테고리의 다른 글
[RestFul API] Flask에서 JWT 설치방법 및 설정방법 (0) | 2024.05.22 |
---|---|
[RestFul API] Python MySQL Connector 특정값 삭제(Delete)하기 (0) | 2024.05.21 |
[RestFul API] Config 파일 생성하여 연동하기, Github 리포지토리 private 변경하기 (0) | 2024.05.21 |
[RestFul API] 가상환경 설정 + Flask 프레임워크와 Flask-restful 라이브러리 설치 (0) | 2024.05.20 |
[RestFul API] RestFul API(URI, HTTP Method, Message) (0) | 2024.05.20 |