Restful API

[Restful API] Python MySQL Connector insert

건휘맨 2024. 5. 21. 11:03

POST로 설정된 포스트맨에서 URL을 입력하고 raw JSON 형식으로 DB에 추가할 정보를 입력

 

Visual Studio Code에서 다음과 같은 코드를 작성

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'}

 

Vscode 에서 터미널 > flask run 으로 서버 실행한 후

포스트맨에서 Send 하고 상태 코드가 200 OK인지 확인, success 인지 확인

 

DB에 잘 들어갔는지 MySQL Workbench 에서도 확인