1.JsonResponse

class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=None, **kwargs)

是HttpResponse的一个子类(有很多的子类),用于帮助创建JSON编码的响应。他从父类继承大部分行为,并具有以下的不同点:

它的默认Content-Type头部设置为application/json。

(1)它的第一个参数 data,应该为一个 dict 实例。如果 safe 参数设置为 False,它可以是任何可 JSON 序列化的对象。

(2)encoder,默认为 django.core.serializers.json.DjangoJSONEncoder,用于序列化data。

(3)布尔参数 safe 默认为 True。如果设置为 False,可以传递任何对象进行序列化(否则,只允许 dict 实例)。如果 safe 为 True,而第一个参数传递的不是 dict 对象,将抛出一个TypeError。

(4)json_dumps_params 是一个字典,它是在生成响应时,传给 json.dumps() 的参数。

2.用法

from django.http import JsonResponse
response = JsonResponse({'foo': 'bar'})
response.content
'{"foo": "bar"}' //<span style=" font-family: Helvetica, Tahoma, Arial, sans-serif;">序列化非字典对象</span>

若要序列化非 dict 对象,你必须设置 safe 参数为 False:

response = JsonResponse([1, 2, 3], safe=False)
如果不传递safe=False,将抛出一个TypeError。

3.修改默认的JSON 编码器

如果你需要使用不同的 JSON 编码器类,你可以传递 encoder 参数给构造函数:

response = JsonResponse(data, encoder=MyJSONEncoder)  

JsonResponse(book_list,safe=False,json_dumps_params={"ensure_ascii":False})

可以解决编码问题,得到想输出的中文了

HTTPResponse JsonReponse Response区别

1.HTTPResponse是由Django创建的,他的返回格式为HTTPResponse(content=响应体, content_type=响应体数据类型, status=状态码),可以修改返回的数据类型,适用于返回图片,视频,音频等二进制文件

2.JsonReponse是HTTPResponse的子类,适用于处理json格式的数据,但是不能返回模板。

帮助我们将数据转换为json字符串

设置响应头Content-Type为application/json

3.Response是Django-rest Framework框架中封装好的响应对象,他的返回格式为Response(data, status=None, template_name=None, headers=None, content_type=None),

data只需传递python的内建类型数据即可,如果是Django的模型类对象,那么就使用序列化将数据(python的字典数据)传递给data。

JsonResponse的更多相关文章

  1. Request对象和Response对象 JsonResponse对象 和 Django shortcut functions 和QueryDict对象

    request request属性 属性: django将请求报文中的请求行.头部信息.内容主体封装成 HttpRequest 类中的属性. 除了特殊说明的之外,其他均为只读的. ''' 0.Http ...

  2. Django 中的JsonResponse 和 json区别

    from django.http import JsonResponse JsonResponse 里面代码会加这一个响应头 kwargs.setdefault('content_type', 'ap ...

  3. Django JsonResponse与HttpResponse重要区别

    JsonResponse是HttpResponse的一个子类,是Django提供的用于创建JSON编码类型响应的快捷类.它的默认Content-Type头部设置为application/json,它的 ...

  4. JsonResponse返回中文乱码问题

    class Publish(APIView): def get(self, request): publish_list = models.Publish.objects.all() bs = MyS ...

  5. django JsonResponse和HttpResponse的在后端和前端区别

    JsonResponse和HttpResponse的区别 1.from django.http import JsonResponse return JsonResponse('例子') 2.impo ...

  6. Django之JsonResponse

    JsonResponse 对象: class JsonResponse(data, encoder=DjangoJSONEncoder, safe=True, json_dumps_params=No ...

  7. django之视图系统 views.py-->主要内容(FBV和CBV、dispath、request对象和request.FILES、JsonResponse)

    一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 一 视图的实现可以基于两种方法: 1 基于函数的形式 FBV 使用装饰器装饰FBV  直接在上 ...

  8. python测试开发django-16.JsonResponse返回中文编码问题

    前言 django查询到的结果,用JsonResponse返回在页面上显示类似于\u4e2d\u6587 ,注意这个不叫乱码,这个是unicode编码,python3默认返回的编码 遇到问题 接着前面 ...

  9. [django]JsonResponse序列化数据

    def home(request): data = { 'name': 'maotai', 'age': 22 } import json return HttpResponse(json.dumps ...

随机推荐

  1. 15.scrapy模拟登陆案例

    1.案例一 a.创建项目 scrapy startproject renren_login 进入项目路径 scrapy genspider renren "renren.com" ...

  2. H5网页适配 iPhoneX,就是这么简单

    iPhoneX 取消了物理按键,改成底部小黑条,这一改动导致网页出现了比较尴尬的屏幕适配问题.对于网页而言,顶部(刘海部位)的适配问题浏览器已经做了处理,所以我们只需要关注底部与小黑条的适配问题即可( ...

  3. 常用.net反编译替换正则表达式

    .set_([^\(]*) .$ = ------------------ .get_([^\(]*)\(\) .$ ------------------ .get_Item\(([a-z|-]+)\ ...

  4. ASP.NET MVC之视图传参到控制器的几种形式

    1. 传递数组 $(function () { var value = ["C#", "JAVA", "PHP"]; $("inp ...

  5. PHP文件系统管理

    文件概念: 第一个是windows的文件,另一个php根据LINUX的文件,两者是有所不同的,我们说的页面基于windows的文件可以是是文件夹(也就是目录)或是文件,而php两者都必须有,它包含目录 ...

  6. IDEA对新建java线程池的建议

    1 代码片段 ExecutorService pool = Executors.newCachedThreadPool(); 2 建议的三种模板 A 第一种,采用Apache的common.lang3 ...

  7. NFS网络共享文件系统

    1.nfs服务端配置操作 1.1  创建所需的共享目录--源 mkdir /data/rw #rw代表同步的数据可读可写 1.2  对共享目录进行授权 chown -R nfsnobody.nfsno ...

  8. 标准盒模型、IE盒模型

    结论:IE盒模型是陈旧知识点,除了帮助理解css3 box-sizing: border-box(等分宽度布局)外没什么用. 标准(W3C)模型中:CSS中的宽(width) = 内容 (conten ...

  9. bash 文件名操作 常用方法

    参考链接: http://www.jb51.net/article/51592.htm 查找文件不获取路径: find $1 -name '*.bin' -exec basename {} \;

  10. mysql 案例 ~ mysql字符集详解

    一 谈谈mysql常见的字符集问题 二 字符集统一  1 character_set_server  2 character_set_client  3 java/php等连接字符集  4 chara ...