python flask开发网页中文显示异常解决
from flask import Flask, jsonify
import json
import config
from flask import Response
app = Flask(__name__)
#配合@app.route("/"),进行请求结束时执行操作的装饰器 也可以实现中文显示
@app.after_request
def after_request(response):
if response.content_type == 'application/json':
response.data = json.dumps(json.loads(response.data.decode('utf-8')), ensure_ascii=False)
response.content_type = 'application/json;charset=utf-8'
return response
@app.route("/")
def index():
data = {
'key': '这是一个中文测试项'
}
return jsonify(data)
#after_request 作用到index函数,后续/2 、/3路径的测试不需要after_request 装饰器即可
#强制转化 ok 强制json.dumps转化可以
@app.route('/2')
def get_user2():
data = {"code": 404, "msg": "用户不存在"}
return Response(
json.dumps(data, ensure_ascii=False),
mimetype='application/json; charset=utf-8'
)
#not OK,手动添加response.headers["Content-Type"] 不起作用
@app.route('/3')
def get_user3():
response = jsonify({"code": 404, "msg": "用户不存在"})
response.headers["Content-Type"] = "application/json; charset=utf-8"
return response
if __name__ == '__main__':
app.run(debug=True,port=5006)