본문 바로가기
Restful API

[Restful API] Python MySQL Connector insert 해보기

by coding_su 2023. 1. 4.

📝Python MySQL Connector insert 해보기

포스트맨을 실행시켜 POST로 설정하고 URL을 입력해준뒤

raw JSON형식으로 DB에 추가할 정보를 입력해준다

Visual Studio Code에서 아래처럼 코드를 작성해준다

+ app.py에 경로와 리소스(API코드)를 연결하는 코드도 작성해준다 

 >>> api.add_resource(RecipeListResource, '/recipes')

from flask import request
from flask_restful import Resource
from myspl_connection import get_connection
from mysql.connector import Error

class RecipeListResource(Resource) :

    # API를 처리하는 함수 개발
    # HTTP Method를 보고 똑같이 만들어준다

    def post(self) : 
        
        # 1. 클라이언트가 보내준 데이터가 있으면 그 데이터를 받아준다
        data = request.get_json()

        # 2. 이 레시피 정보를 DB에 저장해야한다
        try :
            # DB에 연결
            connection = get_connection()

            # 쿼리문 만들기
            query = '''insert into recipe(name, description, num_of_servings, cook_time, directions)
                    values(%s, %s, %s, %s, %s);'''

            # 쿼리에 매칭되는 변수 처리해주기(튜플로)
            record = (data['name'], data['description'], data['num_of_servings'],
            data['cook_time'], data['directions'])

            # 커서를 가져온다
            cursor = connection.cursor()

            # 쿼리문을 커서로 실행한다
            cursor.execute(query, record)

            # 커밋해줘야 DB에 완전히 반영된다
            connection.commit()

            # 자원 해제
            cursor.close()
            connection.close()

        except Error as e :
            print(e)
            cursor.close()
            connection.close()

            return {"result" : "fail", "error" : str(e)}, 500

        # API를 끝낼때는 클라이언트에 보내줄 정보(json)와 http 상태코드를 리턴한다(보내준다)
        return {"result" : "success"}, 200

 

코드를 작성하고 비주얼 스튜디오 코드에서 서버를 실행시키고(flask run)

포스트맨에서 Send를 클릭해 하단의 정보를 확인하고 상태코드가 200 OK 됐는지 확인한다

 

입력한 정보가 DB에 잘 들어갔는지도 확인하기 위해 MySQL Workbench에서 select * from recipe; 해본다

댓글