-
flask get_json 함수 사용법프로그래밍/python 2019. 1. 15. 16:31728x90반응형
flask get_json 함수 사용법
flask 에서 기본적으로 제공하는 get_json 함수를 사용해서
post 방식으로 보내는 json 데이터 처리법을 정리해 보겠습니다.
일단 flask에서 post 방식으로 오는 json 입력을 받는 함수를 작성해보겠습니다.
flask의 app.route에 methods 에 post를 명기해두면
post 방식으로 오는 입력만 받을 수 있습니다.
@app.route('/test', methods=['POST'])
def test():
try:
req_data = request.get_json()
logger.debug("req_data :" + json.dumps(req_data ))
curl 을 사용한 flask 호출방법은 아래와 같습니다.
-H 옵션으로 json 형식을 명시해줍니다.
https 인증서와 관계없이 간단히 테스트하기 위해 -k 옵션을 사용했습니다.
# curl -k -X POST "https://도메인:포트/test" -H 'Content-Type: application/json' -d'
{
"local" : { "table": "exp", "fields" : [ "construction_amount", "cd", "spirit", "exchange", "stock_price" ]
}
'
이렇게 받은 데이터를 get_json으로 받고 사용 예시는 아래와 같습니다.
일반적으로 json의 nested 구조에 접근할 경우 []를 사용합니다.
예시 : req_data['local'], req_data['local']['table']
배열일 경우 req_data['local']['fields'][0]
참고로 마지막 0은 배열의 인덱스입니다.
입력받은 json에서 사용하지 않는 키를 flask 에서 참조할 경우 에러가 나는데
키 값으로 접근하기 전에 키가 존재하는지 확인할 필요가 있습니다.
그럴경우 아래와 같이 in 이나 not in을 사용해서 체크합니다.
if 'local' in req_data and 'custom' not in req_data:
sql = "Select {0}, {1} From experiment_sido order by date".format(req_data['local']['field']), req_data['local']
else:
참고 : https://scotch.io/bar-talk/processing-incoming-request-data-in-flask
728x90반응형'프로그래밍 > python' 카테고리의 다른 글
python에서 mysql db 사용하기 (0) 2022.09.13 python으로 데이터 수집하기 - 3 ) selenium으로 웹사이트 크롤링하기 (0) 2022.08.11 python으로 데이터 수집하기 - 2 ) 크롬 드라이버 설치하기 (0) 2022.08.11 python으로 데이터 수집하기 - 1) pycharm 설치 및 관련 패키지 설치하기 (1) 2019.06.22 리눅스에서 python 32bit 인지 64bit인지 확인하기 (0) 2017.09.24