Postman
GET의 Request는
Query String(Query Parameters)을 사용한다
- offset : 0
- limit : 25
DB 설계하기
코드 입력하고 실행하기 (비밀번호 부분 수정해서 입력한다)
-- recipe_db 에만 전용으로 접속할 수 있는 계정을 만들어야 한다
use mysql;
create user 'recipe_db_user'@'%' identified by '비밀번호 자유롭게 설정한다';
grant ALL privileges on recipe_db.* to 'recipe_db_user'@'%';
aws 엔드포인트 복사
MySQL Hostname에 붙여넣기
비밀번호는 앞전에 설정한대로 입력하기
DB로 들어가 recipe Table을 만든다
POSTMAN에서 가져올 데이터를 생성해준다 (Mysql에서 해도 된다)
VSCode
recipe.py에 get 함수를 만들어준다
- '''+offset+''' , '''+limit+'''는 문자열로 만들어주는 python 문법이다
- fetchall은 전부(all) 가져오라는 뜻이다.
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeListResource(Resource) :
def get(self) :
# 1. 클라이언트가 보낸 데이터가 있으면 받아준다.
offset = request.args['offset']
limit = request.args['limit']
# 2. DB로부터 데이터를 가져온다
try :
connection = get_connection()
query = '''select * from recipe limit '''+offset+''' , '''+limit+''' ;'''
cursor = connection.cursor(dictionary=True)
# dictionary=True 하는 이유는 리스트 형식이 아닌 json형식으로
# 프론트엔트 개발자에게 주기 위해서이다.
cursor.execute(query)
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 만들어서 응답한다
# datetime과 같은 문자나 숫자가 아닌 것들을 문자로 만들어야 한다
# isoformat()는 문자로 만들어주는 함수이다
i = 0
for row in result_list :
result_list[i]['createdAt'] = row['createdAt'].isoformat()
result_list[i]['updatedAt'] = row['updatedAt'].isoformat()
i = i + 1
print()
print(result_list)
return { 'items' : result_list,
'count' : len(result_list),
'result' : 'success' }
app.py 작성
mysql_connection.py 작성
- vscode cmd에 connector 설치
pip install mysql-connector-python
config.py 작성
컨트롤+s로 파일 저장시키고, flask run 하기
이 화면이 뜨지 않으면 파일 저장을 했는지 확인하자
postman에서 send를 누르면 아래와 같이 뜬다
'RestFul API' 카테고리의 다른 글
Flask(플라스크)를 사용하여 MySQL DB의 데이터를 수정(PUT)하는 API 만들기 (0) | 2024.05.21 |
---|---|
Flask(플라스크)를 사용하여 MySQL DB의 원하는 데이터를 가져오는(GET) API 만들기 (0) | 2024.05.21 |
RestFul API에서 POST하기(클라이언트가 데이터 입력하면 DB에 저장하기) : mysql_connection와 config 파일 만들기 (0) | 2024.05.20 |
Python Flask(플라스크) 설치하고 VSCode 작성하여 서버 만들기 (0) | 2024.05.20 |
RestFul API 개념 설명 (0) | 2024.05.20 |