FLASK JSON_AS_ASCII = False 中文不能正常显示

FLASK 设置JSON_AS_ASCII = False 中文不能正常显示:

很多人已经设置了:flask_app.config[‘JSON_AS_ASCII’] = False 或JSON_AS_ASCII = False 但是还是不能正常显示中文


问题描述

设置了JSON_AS_ASCII = False,还是出现中文乱码

HTTP/1.1 200 OK
server: Werkzeug/3.0.2 Python/3.9.13
date: Wed, 17 Apr 2024 08:21:06 GMT
content-type: application/json
content-length: 81
connection: close

{
  "msg": "\u7528\u6237\u540d\u6216\u5bc6\u7801\u9519\u8bef",
  "status": 400
}

原因分析:

JSON_AS_ASCII = False方法已经被淘汰
更新为:app.json.ensure_ascii = False


解决方案:

1.如果是写的是 **flask_app.config[‘JSON_AS_ASCII’] = False ** 直接更换成 app.json.ensure_ascii = False
2.如果是写的 JSON_AS_ASCII = False 可以直接删除,
return(‘status’: 200, ‘msg’: ‘登录成功’} ,换成 return json.dumps({‘status’: 200, ‘msg’: ‘登录成功’}, ensure_ascii=False)
下面我给大家搞了一个对照的例子。找
return
在哪里就行

# 登录功能
@user_bp.route('/login/', methods=['POST'])
def login():
  # 获取用户名
  # name = request.form.get('name')  # content-type: application/x-www-form-urlencoded
  name = request.get_json().get('name') # content-type: application/json
  # 获取密码
  pwd = request.get_json().get('pwd')
  # 判断是否传递数据完整
  if not all([name, pwd]):
	return{'status': 400, 'msg': '参数不完整'}
 
  else:
    # 通过用户名获取用户对象
    user = User.query.filter(name == name).first()
    # 判断用户是否存在
    if user:
      # 判断密码是否正确
      if user.check_password(pwd):
        return {'status': 200, 'msg': '登录成功'}
    return {'status': 400, 'msg': '用户名或密码错误'}
----------------------------------------------------------
# 登录功能
@user_bp.route('/login/', methods=['POST'])
def login():
  # 获取用户名
  # name = request.form.get('name')  # content-type: application/x-www-form-urlencoded
  name = request.get_json().get('name') # content-type: application/json
  # 获取密码
  pwd = request.get_json().get('pwd')
  # 判断是否传递数据完整
  if not all([name, pwd]):
    return json.dumps({'status': 400, 'msg': '参数不完整'}, ensure_ascii=False)
  else:
    # 通过用户名获取用户对象
    user = User.query.filter(name == name).first()
    # 判断用户是否存在
    if user:
      # 判断密码是否正确
      if user.check_password(pwd):
        return json.dumps({'status': 200, 'msg': '登录成功'}, ensure_ascii=False)
    return json.dumps({'status': 400, 'msg': '用户名或密码错误'}, ensure_ascii=False)

执行成功后的结果(看到这了可以给个免费的赞吗,作者也会努力更新flask里面的一些错误。)
同时记得在上面引入json库 from flask import json

HTTP/1.1 200 OK
server: Werkzeug/3.0.2 Python/3.9.13
date: Wed, 17 Apr 2024 08:55:13 GMT
content-type: text/html; charset=utf-8
content-length: 41
connection: close

{
  "msg": "参数不完整",
  "status": 400
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值