초기 DB 데이터
( recipes/2 ) 즉, id = 2인 데이터를 아래와 같이 수정하려고 한다.
Body 를 클릭하고 raw(날 것의 데이터)에서 데이터를 Json형식으로 넣어주었다.
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):
def put(self, recipe_id):
# 1. 클라이언트로부터 데이터를 받아온다
print(recipe_id)
data = request.get_json() # 아래 record 에서 쓰인다
# 2. DB에 수정한다.
try :
connection = get_connection()
query = '''update recipe
set name = %s,
description = %s,
num_of_servings = %s ,
cook_time = %s ,
directions = %s
where id = %s;'''
record = (data['name'],
data['description'],
data['num_of_servings'],
data['cook_time'],
data['directions'],
recipe_id)
cursor = connection.cursor()
cursor.execute(query, record)
connection.commit() #commit하지 않으면 DB에 반영되지 않고 rollback된다
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에서도 내용이 반영된 것을 볼 수 있다.
'RestFul API' 카테고리의 다른 글
Is_publish 컬럼을 update하여 "임시 저장" 기능의 API 만들기 (0) | 2024.05.21 |
---|---|
Flask(플라스크)를 사용하여 MySQL DB의 데이터를 삭제(DELETE)하는 API 만들기 (0) | 2024.05.21 |
Flask(플라스크)를 사용하여 MySQL DB의 원하는 데이터를 가져오는(GET) API 만들기 (0) | 2024.05.21 |
MySQL DB를 RestFul API와 연결하고 Postman으로 실행하기 + Get API (0) | 2024.05.21 |
RestFul API에서 POST하기(클라이언트가 데이터 입력하면 DB에 저장하기) : mysql_connection와 config 파일 만들기 (0) | 2024.05.20 |