반응형
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 |
Tags
- 판다스공부
- java
- 스트림릿
- streamlit
- JavaScript
- 안드로이드 앱 개발
- 자바스크립트
- Matplotlib 기초
- 자바
- MySQL
- serverless
- 스트림릿 기본
- 웹대시보드 제작
- db
- 자바스크립트 공부
- RESTful API
- 자바프로그래밍
- 판다스
- 자바초보
- 파이썬공부
- Pandas
- 웹대시보드 기초
- 자바기초
- 데이터베이스
- Streamlit기본
- 안드로이드 스튜디오
- 파이썬
- Android
- 자바공부
- Streamlit기초
Archives
- Today
- Total
ruriruriya
[RESTful API] Python Flask - API 개발을 위해 Resource 클래스 개발하는 코드 본문
반응형
먼저 Resource를 관리할 폴더를 만들어 API를 만들기 위한 클래스를 작성한다.
1. flask_restful 라이브러리 import
API를 만들기 위해서는 flask_restful 라이브러리의 Resource 클래스를 상속, 즉 오버라이딩으로 만든다.
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
2. 클래스 작성
클래스 안에 HTTP 메소드와 동일한 함수명으로 오버라이딩 한다.
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeListResource(Resource):
def post(self):
3. 클라이언트로부터 데이터 받기
클라이언트가 보내준 데이터가 있으면 그 데이터를 가장 먼저 받아준다.
get_json() 함수를 사용해서 json으로 받는다.
그리고 print로 확인해보기.
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeListResource(Resource):
def post(self):
data = request.get_json()
print(data)
4. DB 저장할 부분 기본 구조
받아온 데이터 DB를 저장하기 위해 try except 구문 기본구조를 잡는다.
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeListResource(Resource):
def post(self):
data = request.get_json()
print(data)
#받아온 데이터 DB 저장하는 부분
try :
pass
except Error as e :
pass
4. try 구문에 DB 저장 프로그래밍
순차적으로 실행될 코드는 넣어준다.
- DB 연결 코드
- insert 쿼리 만들기
- 위의 쿼리에 매칭되는 변수 처리
- 커서 가져오기
- 위의 커리문 커서로 실행
- 자원해제
from flask import request
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error
class RecipeListResource(Resource):
def post(self):
data = request.get_json()
print(data)
#받아온 데이터 DB 저장하는 부분
try :
# 2-1. db에 연결하는 코드(틀)
connection = get_connection()
# 2-2. 쿼리문 만들기 - insert 쿼리만들기.
query = '''insert into recipe
(name, description, num_of_servings,
cook_time, directions)
values
(%s,%s,%s,%s,%s);'''
# 2-3. 위의 쿼리에 매칭되는 변수를 처리해 준다.
record = ( data['name'] , data['description'] ,
data['num_of_servings'], data['cook_time'],
data['directions'])
# 2-4. 커서를 가져온다.
cursor = connection.cursor()
# 2-5. 위의 쿼리문을, 커서로 실행한다.
cursor.execute(query, record)
# 2-6. 커밋해줘야, DB에 완전히 반영된다.
connection.commit()
# 2-7 자원해제
cursor.close()
connection.close()
except Error as e :
pass
6. 에러 발생 시 메세지 설정
에러 발생 시 에러 메세지를 보여주는 부분이다.
-- 위에 생략
except Error as e :
print(e)
cursor.close()
connection.close()
return{"result":"fail", "error": str(e)},500
7. DB 저장되었을 시 메세지 설정
에러 없이 DB에 잘 저장되었다면 성공 메세지와 http 상태코드인 200 OK를 리턴한다.
-- 위에 생략
except Error as e :
print(e)
cursor.close()
connection.close()
return{"result":"fail", "error": str(e)},500
# 클라이언트에게 DB 저장 후 응답
return{"result":"success"}, 200
반응형
'Python Flask' 카테고리의 다른 글
[RESTful API] Python MySQL- Connector를 활용한 insert 방법 (1) | 2023.12.06 |
---|---|
[RESTful API] Python Flask - API 경로와 Resource 클래스 연결하는 방법 (0) | 2023.12.06 |
[RESTful API] Python Flask 프레임워크를 활용한 기본구조 (0) | 2023.12.06 |
[RESTful API] 가상환경 설정하기(flask, postman 설치) (0) | 2023.12.06 |
[RESTful API] RESTful API란? (URL, Method, Message) (2) | 2023.12.06 |