API 개발/Restful API

Restful API : Python MySQL Connector 딜리트 하는 방법과 코드

신강희 2024. 5. 24. 11:53
728x90

< Python MySQL Connector 딜리트 하는 방법과 코드 >

 

# PUT 기능에서 이어서 진행! (참고 : https://sorktjrrb.tistory.com/145)

 

# 레시피를 삭제(DELETE) 하는 API를 만들어 보자

- 우선, 포스트맨을 실행시켜 DELETE로 설정하고, URL(삭제할 id값도 같이 입력) 입력!

- Body 작성 필요없이 URL로만 전송

 

# VSCode에서 API 코드 작성!

- id를 지정하여 가져오는 형태이므로 특정 레시피를 선택 및 수정했던 class에 이어서 작성

 
from flask import request
from flask_restful import Resource

from mysql_connection import get_connection
from mysql.connector import Error
 
class RecipeResource(Resource) :
    # 레시피 삭제하는 API
    # 삭제는 delete
    def delete(self, recipe_id) :

        # DB 에 수정한다.
        try :
            connection = get_connection()

            # 컬럼과 매칭되는 데이터는 %s로 하면된다.
            query = '''delete from recipe
                        where id = %s and user_id = %s;'''
            record = (recipe_id ,
                      user_id )

            cursor = connection.cursor()

            cursor.execute(query, record)

            connection.commit()

            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

        # 클라이언트에 JSON 리턴한다.

        return {'result' : 'success'}
 

 

# app.py 파일에 경로와 리소스(API 코드)를 연결하는 코드도 작성!

 
# API를 처리하는 코드는
# Resource 클래스를 상속받아서 작성한다.
# 이 클래스에는 get, post, put, delete 함수를 상속받는다.
# 따라서 이 함수들을, 우리의 서비스에 맞게 수정해서 사용하면된다.

from flask import Flask
from flask_restful import Api
 
# 생성한 API class 사용을위해서 생성시마다 import 필요!
from resources.recipe import RecipeListResource, RecipeResource
 
from config import Config
 
app = Flask(__name__)
api = Api(app)

# 경로(path)와 리소스(API 코드)를 연결한다.
# <int> flask 문법임 외워야됨
api.add_resource( RecipeListResource , '/recipes')
api.add_resource( RecipeResource , '/recipes/<int:recipe_id>')

if __name__ == '__main__' :
    app.run()
 

 

# 완료 되었으면 서버 실행 cmd > flask run  postman을 실행하여 send!

- 포스트맨에 200 OK가 뜨고 VScode cmd 창에도 결과가 잘 출력되는것 확인!

- MySQL Workbench도 실행하여 DB에 데이터가 잘 삭제되었는지도 확인!

 

다음 게시글로 계속~!

 

반응형