반응형
< Python MySQL Connector 업데이트 하는 방법과 코드 >
# SELECT 기능에서 이어서 진행! (참고 : https://sorktjrrb.tistory.com/143)
# 레시피를 수정(UPDATE) 하는 API를 만들어 보자
- 우선, 포스트맨을 실행시켜 PUT으로 설정하고, URL(업데이트할 id값도 같이 입력) 입력!
- Body에 raw 선택 JSON 형식으로 DB에 추가하고 싶은 정보를 입력해준다.
# 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
# 수정은 put
def put(self, recipe_id) :
# 1. 클라이언트로 부터 데이터를 받아온다.
print(recipe_id)
data = request.get_json()
# 토큰 ID 받기
user_id = get_jwt_identity()
# 2. DB 에 수정한다.
try :
connection = get_connection()
# 컬럼과 매칭되는 데이터는 %s로 하면된다.
query = '''update recipe
set name = %s,
description = %s,
num_of_servings = %s,
cook_time = %s,
directions = %s
where id = %s and user_id = %s;'''
record = (data['name'],
data['description'],
data['num_of_servings'],
data['cook_time'],
data['directions'],
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
# 3. 클라이언트에 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 창에도 결과가 잘 출력되는것 확인!
다음 게시글로 계속~!
728x90
반응형
'API 개발 > Restful API' 카테고리의 다른 글
Restful API : 회원 관리 API를 위한 pbkdf2_sha256으로 비밀번호 암호화시키기 (0) | 2024.05.24 |
---|---|
Restful API : Python MySQL Connector 딜리트 하는 방법과 코드 (0) | 2024.05.24 |
TypeError : Object of type ... is not JSON serializable 에러가 발생한 이유와 해결방법 (0) | 2024.05.24 |
Restful API : Python MySQL Connector 셀렉트 하는 방법 (0) | 2024.05.24 |
Restful API : Python MySQL Connector 인서트 하는 방법 (0) | 2024.05.23 |