python flask开发网页中文显示异常解决

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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值