반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바프로그래밍
- 자바초보
- 판다스
- 자바스크립트 공부
- java
- 안드로이드 앱 개발
- 파이썬
- Pandas
- RESTful API
- 스트림릿 기본
- Streamlit기본
- MySQL
- 판다스공부
- db
- 자바스크립트
- Android
- 자바
- 웹대시보드 제작
- 데이터베이스
- serverless
- 파이썬공부
- JavaScript
- 자바기초
- streamlit
- Flutter
- 웹대시보드 기초
- 안드로이드 스튜디오
- 스트림릿
- Streamlit기초
- 자바공부
Archives
- Today
- Total
ruriruriya
[RESTful API] Python MySQL- Connector를 활용한 select 방법 본문
반응형
Python MySQL Connector를 활용하여
SQL문으로 작성하여 select 쿼리문을 만들고 실행하고 반영해보자.
1. MySQL에서 쿼리문 확인
MySQL에서 select문 쿼리를 작성하여 테스트한다.
아래는 전체 레시피를 불러오는 쿼리문이다.
select *
from recipe;
전체 레시피 2개 있는 것을 확인할 수 있다.
2.MySQL 접속 함수 만들기
mysql.connector 패키지 import 하여 접속함수를 만드는 것은 지난 포스팅의 2번을 확인하자.
https://ruriruriya.tistory.com/98
3. API 클래스에서 mysql 접속 및 쿼리문 만들기
flask 라이브러리와 mysql.connector 패키지 import 후
리소스 클래스를 오버라이딩 하여 get함수를 만든다.
post 메소드는 클라이언트로부터 데이터를 받는 작업을 했지만
get 메소드는 데이터를 가져오는 작업만 하기 때문에
데이터 받는 함수는 생략된다.
여기서 중요한 점은 Select 문에서 커서를 만들 때에는
리스트와 딕셔너리 형태로 가져오기 때문에
클라이언트에게 json 형식으로 보내줄 수 있다.
그래서 dictionary = True로 해줘야 한다.
그리고 datetime은 파이썬에서만 쓰는 데이터 타입으로
JSON 형식으로 내보내기 위해선 문자열로 변환시켜야 한다.
# flask 라이브러리와 mysql.connector 패키지 import
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) :
# post 메소드와 달리 클라이언트가 입력해줄 데이터가 없어
바로 DB에 저장된 데이터를 가져오는 작업을 한다.
# 2. DB에 저장된 데이터를 가져온다.
try:
connection = get_connection()
query = '''select *
from recipe;'''
# Select 문에서 커서 만들 시
# dictionary = True로 해준다.
# 리스트와 딕셔너리 형태로 가져오기 때문에
# 클라이언트에게 json 형식으로 보내줄 수 있다.
cursor = connection.cursor(dictionary=True)
cursor.execute(query)
result_list = cursor.fetchall() #모든 데이터 다 꺼내오는 함수
print(result_list)
# datetime은 파이썬에서만 쓰는 데이터타입으로
# json 형식으로 보내기 위해선 문자열로 바꿔주는 작업을 해야함.
i = 0
for row in result_list :
result_list[i]['created_at']= row['created_at'].isoformat()
result_list[i]['updated_at']= row['updated_at'].isoformat()
i = i + 1
cursor.close()
connection.close()
except Error as e :
print(e)
cursor.close()
connection.close()
return {"result":"fail","error":str(e)}, 500
return {"result": "success","items":result_list,"count": len(result_list)}, 200
4. postman으로 테스트
코드 작성 후 vscode 터미널에서
해당 가상 환경에서 flask run 명령어를 실행 후.
postman에서 새로운 api 생성하여 메소드, 패스 등 설정 후
Send 클릭하면 아래에 성공메세지와 해당 DB의 데이터를 모두 가져오는 것을 확인할 수 있다.
반응형
'Python Flask' 카테고리의 다른 글
[RESTful API] Python MySQL- Connector를 활용한 delete 방법 (2) | 2023.12.07 |
---|---|
[RESTful API] Python MySQL- Connector를 활용한 update 방법 (1) | 2023.12.07 |
[RESTful API] Python MySQL- Connector를 활용한 insert 방법 (0) | 2023.12.06 |
[RESTful API] Python Flask - API 경로와 Resource 클래스 연결하는 방법 (0) | 2023.12.06 |
[RESTful API] Python Flask - API 개발을 위해 Resource 클래스 개발하는 코드 (0) | 2023.12.06 |