1. flask json 인코딩 깨질 때
app.config['JSON_AS_ASCII'] = False
코드 추가
2. get 방식으로 넘어온 파라미터 데이터 저장하는 방법
https://apt-info.github.io/%EA%B0%9C%EB%B0%9C/python-flask2-get/
@app.route('/')
def root():
parameter_dict = request.args.to_dict()
if len(parameter_dict) == 0:
return 'No parameter'
parameters = ''
for key in parameter_dict.keys():
parameters += 'key: {}, value: {}\n'.format(key, request.args[key])
return parameters
3. 여러 API 값을 한 번에 return 할 수 있는 방법 연구
from flask import Flask, request
from kciJson import kci
from WosLiteJson import wos
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
data = []
@app.route("/search")
def search():
title = request.args.get("title", "")
response = "{}".format(title)
data.append(kci.get_all(response))
data.append(wos.get_all(response))
return data
if __name__ == '__main__':
app.run()
오류 :
TypeError: The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a list.
해결 : return type으로 dict는 처리할 수 있는데 list는 처리할 수 없다고 해서, jsonify 처리해줌.
https://snippets-save-us.tistory.com/73
@app.route("/search")
def search():
title = request.args.get("title", "")
response = "{}".format(title)
data.append(kci.get_all(response))
data.append(wos.get_all(response))
return jsonify(data)
오류 : 두 번째 API(wos) 값의 데이터가 깨짐. 한글 인코딩 문제 X
원인 :
kci는 return 값이 dict형으로 들어오는데, wos는 return 값이 json 타입으로 들어와서,
똑같이 jsonify로 변환해줬을 때 깨지는 현상 발생.
해결 : json.loads를 사용해서 wos는 dict형으로 1차 변환해준 다음 진행
@app.route("/search")
def search():
title = request.args.get("title", "")
response = "{}".format(title)
data.append(kci.get_all(response))
data.append(json.loads(wos.get_all(response)))
return jsonify(data)
4. 참고 및 공부할 페이지
flask 기본 구조
https://wings2pc.tistory.com/entry/%EC%9B%B9-%EC%95%B1%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%94%8C%EB%9D%BC%EC%8A%A4%ED%81%ACPython-Flask
웹 프로그래밍 예제
https://edudeveloper.tistory.com/135
점프 투 플라스크
https://wikidocs.net/81510
'기록 > Python' 카테고리의 다른 글
[Python] 파이썬 비동기처리 asyncio 모듈 (0) | 2022.07.13 |
---|---|
[Python] 파이썬 데이터프레임(엑셀 데이터) MySQL에 저장하기 (1) | 2022.07.13 |
[Python/Linux] 파이썬 selenium 활용하여 웹 페이지 버튼 클릭하기 & 리눅스에서 실행 삽질 기록 (0) | 2022.06.30 |
[Python] 파이썬 데이터프레임 NaN 값 들어있는 행 지우기 (0) | 2022.06.30 |
[Python] 파이썬 데이터프레임 오류 ValueError: Length of values (10) does not match length of index (25) (0) | 2022.06.29 |