Django之JsonResponse对象

【图书介绍】《Django 5企业级Web应用开发实战(视频教学版)》_django 5企业级web应用开发实战(视频教学版)-CSDN博客

《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com)

在Django框架中,还定义了一个HttpResponse类的子类——JsonResponse类,是用于创建JSON编码类型响应的快捷类。

JsonResponse类的定义如下:

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

该类从父类HttpResponse中继承大部分行为,并增加了一部分功能,具体说明如下:

  • 默认Content-Type头部设置为application/json。
  • data参数应该为一个字典数据类型。如果后面的safe参数设置为False,则该参数可以为任意JSON-serializable(序列化)对象。
  • encoder参数默认设置为django.core.serializers.json.DjangoJSONEncoder,用于序列化数据。
  • safe参数只有设置为False时,才可以将任何可JSON序列化的对象作为data参数的值。如果safe参数设置为True,则同时将一个非字典型对象传递给data参数时,会触发一个TypeError错误。
  • json_dumps_params参数通过将一个字典类型关键字参数传递给json.dumps()方法,来生成一个响应。

关于JsonResponse类的典型使用方法,示例代码如下:

>>> from django.http import JsonResponse
>>> response = JsonResponse({'foo': 'bar'})
>>> response.content
b'{"foo": "bar"}'

 

若要序列化非dict对象,则必须将safe参数设置为False,示例代码如下:

>>> response = JsonResponse([1, 2, 3], safe=False)

如果不传递safe=False,将抛出一个TypeError。

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

>>> response = JsonResponse(data, encoder=MyJSONEncoder)

《Django 5企业级Web应用开发实战(视频教学版)》(王金柱)【摘要 书评 试读】- 京东图书 (jd.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值