RestFul API

Flask(플라스크)를 사용하여 MySQL DB의 데이터를 삭제(DELETE)하는 API 만들기

567Rabbit 2024. 5. 21. 16:52

 

초기 DB 데이터

 

 

 

 

 

( recipes/6 ) 즉,  id = 6인 데이터를 삭제하려고 한다. 

 

 


DB와 postman을 연동하는 방법은 아래 글을 참고한다

 

 

https://codebunny99.tistory.com/87

 

MySQL DB 설계, 연동하여 RestFul API로 GET하기(DB에 있는 데이터 가져오는 API)

Postman   GET의 Request는 Query String(Query Parameters)을 사용한다- offset : 0- limit : 25     DB 설계하기 코드 입력하고 실행하기 (비밀번호 부분 수정해서 입력한다)-- recipe_db 에만 전용으로 접속할 수

codebunny99.tistory.com

 

 

 

 

 

VSCode

 

 

app.py 작성하기

 

 

 

<int : recipe_id> 이렇게 작성하는 것을 Flask(플라스크) 라고 한다

 

 

Flask는 Python으로 작성된 경량 웹 프레임워크로, 간단한 웹 애플리케이션이나 API를 신속하게 구축하는 데 사용된다. Flask에서는 URL 경로를 라우트(route)라고 하며, 특정 경로로 접근했을 때 실행될 함수를 정의할 수 있다.

 

 

 



recipe.py 작성하기

 

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

class RecipeResource(Resource):
 
 # 특정 id의 레시피 삭제하는 API    
    def delete(self, recipe_id) :

        print(recipe_id)
        
        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 Error as e:
            if cursor is not None:  # null이 아니면
                cursor.close()
            if connection is not None:
                connection.close()
            return {'result': 'fail', 'error': str(e)}, 500  # 500 에러
            
        return {'result': 'success'}

 

 

 

 

파일을 저장하여 vscode 터미널 cmd 창에 flask run 하고,

 

send를 누르면 "result" : "success" 라고 뜬다.

 

 

 

 

 

 

DB에 가보면 id 6번이 삭제되었다