728x90
from flask import Flask
from flask_restful import Api
from config import Config
from resources.recipe import RecipeListResource
app = Flask(__name__)
# 환경변수 셋팅
app.config.from_object(Config)
api = Api(app)
# 경로와 리소스(API코드)를 연결한다.
api.add_resource(RecipeListResource, '/recipes')
if __name__ == '__main__' :
app.run()
메인 화면인 app.py의 코드는 이렇게 작성되어 있습니다.
DB에 값을 넣기 위한 POST 코드는 다음과 같습니다.
각 코드마다 주석처리가 되어있습니다.
class RecipeListResource(Resource) :
# API를 처리하는 함수 개발
# HTTP Method를 보고! 똑같이 만들어준다.
def post(self) :
# 1. 클라이언트가 보내준 데이터가 있으면
# 그 데이터를 받아준다.
data = request.get_json()
# print(data)
# 2. 이 레시피정보를 DB에 저장해야한다.
try :
### 1. DB에 연결
connection = get_connection()
### 2. 쿼리문 만들기
query = '''insert into recipe
(name,description,num_of_servings,cook_time,directions)
values
(%s,%s,%s,%s,%s);'''
### 3. 쿼리에 매칭되는 변수 처리 해준다. 튜플로!
record = ( data['name'],data['description'],data['num_of_servings'],data['cook_time'],data['directions'] )
### 4. 커서를 가져온다.
cursor=connection.cursor()
### 5. 쿼리문을 커서로 실행한다.
cursor.execute(query, record)
### 6. 커밋을 해줘야 DB에 완전히 반영된다.
connection.commit()
### 7. 자원 해제
cursor.close()
connection.close()
except Error as e :
print(e)
cursor.close()
connection.close()
return{"result" : "fail", "error" : str(e)} , 500
# API를 끝낼때는
# 클라이언트에 보내줄 정보(json)와 http 상태 코드를
# 리턴한다.
return {"result" : "success"} , 200
포스트맨을 이용한 테스트 결과
MySQL에서 select문을 이용해 확인 결과
'Rest API' 카테고리의 다른 글
API서버 - 클라이언트에서 입력받은 값으로 DB 수정하기 (PUT) (0) | 2023.01.04 |
---|---|
API - 클라이언트로부터 특정 정보의 값 출력하기 (GET) (0) | 2023.01.04 |
Python에서 MySQL연동하는 방법 중에 Config파일을 만들어 정보를 따로 저장하는 방법 (0) | 2023.01.04 |
Rest API 서버 개발을 위한 가상환경 설정과 flask 프레임워크 설치 (0) | 2023.01.03 |
Restful API ( URI , Methods , Message ) (0) | 2023.01.03 |