Django 解决返回JSON,汉字转换为Ascii
Posted 在奋斗的大道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 解决返回JSON,汉字转换为Ascii相关的知识,希望对你有一定的参考价值。
问题描述:Django 返回Json 结果,汉字全部转换为Ascii码
Django 之view.py 功能代码
import json
from django.shortcuts import render
from userSystem.models import Book
from django.http import HttpResponse
from django.core import serializers
# Create your views here.
def select(request):
books = Book.objects.all()
for i in range(len(books)):
print("主键:%s 值:%s" % (i + 1, books[i]))
return response_success(message='后台响应成功', data_list=serializers.serialize("json", books))
def response_success(message, data=None, data_list=[]):
return HttpResponse(json.dumps({
'code': 200,#code由前后端配合指定
'message': message,#提示信息
'data': data,#返回单个对象
'dataList': data_list#返回对象数组
}), 'application/json')
解决办法:
1、在django.http 的HttpResponse 构造函数中,设置不启用Ascii 编码。
修改后的核心代码片段
import json
from django.shortcuts import render
from userSystem.models import Book
from django.http import HttpResponse
from django.core import serializers
# Create your views here.
def select(request):
books = Book.objects.all()
for i in range(len(books)):
print("主键:%s 值:%s" % (i + 1, books[i]))
return response_success(message='后台响应成功', data_list=serializers.serialize("json", books))
def response_success(message, data=None, data_list=[]):
return HttpResponse(json.dumps({
'code': 200,#code由前后端配合指定
'message': message,#提示信息
'data': data,#返回单个对象
'dataList': data_list#返回对象数组
}, ensure_ascii=False), 'application/json')
效果输出:
以上是关于Django 解决返回JSON,汉字转换为Ascii的主要内容,如果未能解决你的问题,请参考以下文章
将 django ValuesQuerySet 转换为 json 对象