欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > Django之JsonResponse对象

Django之JsonResponse对象

2024/11/30 11:52:43 来源:https://blog.csdn.net/brucexia/article/details/140844146  浏览:    关键词: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)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com