๊ฒฐ๊ณผ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
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 get(self, recipe_id):
# 1. ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋๋ค
print(recipe_id)
# 2. DB๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค
try:
connection = get_connection()
print('์ปค๋ฅ์
์คํ')
query = '''SELECT * FROM recipe WHERE id = %s;'''
record = (recipe_id,) # ํํ๋ก ๋ง๋ค์ด์ฃผ๊ธฐ ์ํด์ ์ฝค๋ง ๋ฃ์ด์ค๋ค
cursor = connection.cursor(dictionary=True)
print('์ปค์ ๊ฐ์ ธ์ค๊ธฐ ์ฑ๊ณต')
cursor.execute(query, record)
print('์ฟผ๋ฆฌ๋ฌธ ์คํ')
result_list = cursor.fetchall()
print(result_list)
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 ์๋ฌ
# 3. ์๋ตํ ๋ฐ์ดํฐ๋ฅผ json์ผ๋ก ๋ง๋ค์ด์ ์๋ตํ๋ค
for row in result_list:
row['createdAt'] = row['createdAt'].isoformat()
row['updatedAt'] = row['updatedAt'].isoformat()
# ๊ฒฐ๊ณผ๊ฐ ์๋ ๊ฒฝ์ฐ์ ๋ํ ์ฒ๋ฆฌ
if not result_list:
return {'result': 'fail', 'error': 'ํด๋น ์์ด๋๋ ์กด์ฌํ์ง ์์ต๋๋ค.'}, 404
return {'items': result_list[0], 'result': 'success'}
DB์ ์๋ id๋ฅผ ํธ์ถํ๋ฉด "ํด๋น ์์ด๋๋ ์กด์ฌํ์ง ์์ต๋๋ค" ๋ผ๋ ์๋ฌ๋ฉ์์ง๋ฅผ ๋จ๊ฒ ํ์๋ค.
๋ชจ๋ ํ์ผ์ ์ ์ฅํ์ฌ vscode ํฐ๋ฏธ๋ cmd ์ฐฝ์ flask run ํ๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
# ๊ฒฐ๊ณผ๊ฐ ์๋ ๊ฒฝ์ฐ์ ๋ํ ์ฒ๋ฆฌ์ ๊ฒฐ๊ณผ