前回ではjsonの戻り値に日本語を設定していた場合に
文字化けしていましたので文字化けを防ぐようにする方法を説明します。
とは言っても、やることはとても単純です。次の一文を追加するだけです。
api.config[‘JSON_AS_ASCII’] = False
Flask のアプリケーションの config に、デフォルト設定項目として JSON_AS_ASCII なるものが定義されており、app.config[‘JSON_AS_ASCII’]=False を設定する必要があります。
from flask import Flask, jsonify, abort, make_response # Flaskクラスのインスタンスを作成 # __name__は現在のファイルのモジュール名 api = Flask(__name__) api.config['JSON_AS_ASCII'] = False #日本語の文字化け制御 # GETの実装 @api.route('/test', methods=['GET']) def test(): result = { "APITEST1": 'test1', "APITEST2":"test2" } return make_response(jsonify(result)) #日本語が文字化けする @api.route('/test2', methods=['GET']) def get(): result = { "アイウエオ": 'あいうえお', "漢字":"漢字" } return make_response(jsonify(result)) # エラーハンドリング @api.errorhandler(404) def not_found(error): return make_response(jsonify({'error': 'Not found'}), 404) # ファイルをスクリプトとして実行した際に # ホスト0.0.0.0, ポート3001番でサーバーを起動 if __name__ == '__main__': api.run(host='0.0.0.0', port=3001)