[ 작업 환경 ]
[ 문제 상황 ]
한글 데이터가 깨짐(비정상) 상태로 출력됩니다.
[ 원인 ]
기본적으로 기존 utf8 인코딩이 아닌, ascii 인코딩으로 출력되기 때문입니다.
[ 해결 방법 1 ]
필자 프로젝트에서는 아래와 같이 app 선언 아래에
app.config['JSON_AS_ASCII'] = False
를 입력해주어, 'JSON_AS_ASCII' 설정을 False로 변경해주었습니다.
# vim app001/__init__.py
from flask import Flask
app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False
from app001 import routes
[ 해결 방법 2 ]
json.dumps 와 make_response 를 활용해 ensure_ascii=False 설정으로 json을 생성합니다.
# ...
import json
from flask import make_response
# ...
result = json.dumps(result, ensure_ascii=False)
res = make_response(result)
return res
이 경우 [ 해결 방법 1 ] 의 결과처럼 깔끔한 형태로 정렬되어 보이지 않아 가독성이 떨어집니다.
result = json.dumps(result, ensure_ascii=False, indent=4)
res = make_response(result)
return res
indent=4
옵션을 json.dumps에 추가해줄 경우 탭사이즈 4로 깔끔하게 인덴팅되어 출력되는 것으로 해결할 수 있습니다.
'Development > Flask with Python' 카테고리의 다른 글
[Flask1.1][Mysql] 실습 - 10 : 파일 업로드하기 기능 추가 (0) | 2020.01.24 |
---|---|
[Flask1.1][Mysql] Query Parameter 적용하기 예시 (0) | 2020.01.22 |
[Flask1.1][Mysql] 실습 - 9 : jwt 활용하여 인증 기능 추가하기 (0) | 2020.01.17 |
[Flask1.1][Mysql] 실습 - 8 : 비밀번호 암호화하기 및 비밀번호check with bcrypt (0) | 2020.01.17 |
[Flask1.1][Mysql] 실습 - 7 : 회원가입 기능 구현하기 (0) | 2020.01.16 |