首页 > 编程语言 >JsonResponse源码分析

JsonResponse源码分析

时间:2023-11-29 15:13:13浏览次数:42  
标签:分析 __ JsonResponse init json 源码 kwargs data

1.视图层返回JsonResponse

return JsonResponse({'name':'kevin','age':19})

  

2.触发 JsonResponse 的__init__方法

将{'name':'kevin','age':19}传给data

  

3.源码分析

def __init__(self, data, encoder=DjangoJSONEncoder, safe=True,json_dumps_params=None, **kwargs):
    # 如果传入的是字典
    # safe是True,后面是False,条件不符合,内部就不会走,就会抛出异常
    # 将safe改为False,就可以传入列表了
    if safe and not isinstance(data, dict):
        raise TypeError(
            'In order to allow non-dict objects to be serialized set the '
            'safe parameter to False.'
        )
   if json_dumps_params is None: # 条件符合
        json_dumps_params = {}
        # kwargs是字典---》setdefault--》有则修改,无则新增
        kwargs.setdefault('content_type', 'application/json')
        # 核心---》把字典转成json格式字符串,赋值给data
   data = json.dumps(data, cls=encoder, **json_dumps_params)
   # super().__init__ 调用父类的 __init__ 完成实例化---》父类:HttpResponse的对象
   return HttpResponse(data,**kwargs)
   super().__init__(content=data, **kwargs)

  

补充:

# isinstance
	-使用方法:isinstance(对象, 类) # 判断这个对象,是不是这个类中的对象
                                  # 返回True或False

  

 

标签:分析,__,JsonResponse,init,json,源码,kwargs,data
From: https://www.cnblogs.com/wellplayed/p/17864897.html

相关文章

  • 图文剖析 big.js 四则运算源码
    big.js,一个小型、快速的用于任意精度的十进制算术的JavaScript库。big.js用于解决平常项目中进行算术运算时精度丢失引起的结果不准确的问题。和big.js类似的两个库bignumber.js和decimal.js也都是出自同一作者(MikeMcl)之手。作者在这里详细说明了他们之间的区别big.......
  • 微信小程序实现语音录制(uni-app源码版)
    注意以下代码只是部分代码,已经将完整代码上传至插件市场,可在插件市场中下载。插件下载地址1.创建音频对象上下文//创建音频上下文letinnerAudioContext=uni.createInnerAudioContext({useWebAudioImplement:false,})this.innerAudioContext=in......
  • 视频直播源码,采用Redis实现购物车功能
    视频直播源码,采用Redis实现购物车功能1Redis核心配置类packagecom.jmh.springboot03.config; importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.beans.factory.annotation.Configurable;importorg.springframework.context.annot......
  • 手机直播源码,js实现懒加载、vue实现图片懒加载指令
    手机直播源码,js实现懒加载、vue实现图片懒加载指令图片懒加载监听滚动条滚动事件,当视口的高度+滚动高度,大于图片所在位置举例顶部的偏移量时(也就是距离),加载图片资源 index.html<!DOCTYPEhtml><html> <head>  <metacharset="UTF-8">  <metaname="viewport"conte......
  • SPI扩展点在业务中的使用及原理分析
    1什么是SPISPI全称ServiceProviderInterface。面向接口编程中,我们会根据不同的业务抽象出不同的接口,然后根据不同的业务实现建立不同规则的类,因此一个接口会实现多个实现类,在具体调用过程中,指定对应的实现类,当业务发生变化时会导致新增一个新的实现类,亦或是导致已经存在的类......
  • NS-3源码学习(四)wifi-ent-network.cc
    NS-3源码学习(四)wifi-ent-network.cc设定的参数booludp{true};udp/tcp通信选择booldownlink{true};AP->STA:downlink=true/STA->AP:downlink=false数据发送方向选择booluseExtendedBlockAck{false};启用扩展块确认,默认不启用,即块确认的大小为64,启用......
  • 蛋白质组学原理与数据分析合集
    最近看到微信公众号:“生物信息与育种”的文章阅读量太低了,粉丝量基础也很少。可能是做动植物基因组和育种相关工作的人员基数相对较少,而且我也没有主动去推。于是想着把以前做的的蛋白质组学部分笔记迁移到公众号上,一是为内容备份,二是为增加粉丝和阅读量。不过这些笔记是几年前的......
  • 《安富莱嵌入式周报》第326期:航空航天级CANopen协议栈,开源USB PD电源和功耗分析,开源Et
     更新一期视频教程:BSP视频教程第28期:CANopen协议栈专题,CANopen主从机组网实战,CAN词典工具使用方法以及吃透PDO玩法视频版:https://www.bilibili.com/video/BV1H84y1Q717/ 1、航空航天级CANopen协议栈https://gitlab.com/n7space/canopenhttps://canopen.space/#download lely-......
  • 中间件IIS监控指标、配置和Windbg调试分析
    1.关键性能计数器指标a.Web服务(W3SVC)性能计数器当前连接数(CurrentConnections):显示当前所有HTTP连接的数量。过高的数值可能表明网站流量过大或连接无法及时释放。每秒请求数(Requests/sec):显示每秒钟收到的HTTP请求的数量。这可以帮助您了解网站的流量。匿名用户/秒(Ano......
  • CRM系统数据分析与报表功能对公司来说重要吗?
     竞争日益激烈,企业需要更加高效地管理客户关系,以获取更多的商机。为此,许多企业选择使用CRM系统。在CRM中,数据分析功能扮演着重要的角色。下面就来详细说说,CRM系统数据分析与报表功能对企业来说重要吗?一、CRM数据分析与报表为什么重要?在CRM中,与客户通过多种渠道联系沟通。当客......