在DRF框架里,ModelSerializers是一个重要的组件。大大的帮组我们节省了数据序列化的过程,真的可以说是良心产品。接手的这个项目用的Django,前人的代码都是手动序列化的,为了保证风格的一致性我续写的代码也都是手动序列化。后来遇到一个问题:有个接口的查询结果是querySet里的数据有几千条,而且需要一次性返回,不能做分页处理。这一下几千条的遍历确实是耗费时间的,由此导致了接口的访问速度过慢。因此想到看有没有官方优化的序列化功能能来解决这个瓶颈。在某度忙活了好久,查询到的都是关于DRF框架的ModelSerializers。仔细遍历完了各个文章,还是找到了一些关于Django serializers的信息。整理如下:

 

from django.core import serializers

order_infos =Order.objects.filter(number=_number,name =_name)
#第一个参数为转化为的数据格式,第二个参数是queryset对象。(必须是queryset对象,不能是查询后的列表。不然会报错 'dict' object has no attribute '_meta') 。
json_data = serializers.serialize('json', order_infos)

  下面是列举的一些支持序列化的数据格式:

    xml        类似与前端html格式的一种数据格式,用于传输和记录

    yaml        也是一种数据格式,和json很像,可是没有双引号,可读性较强。感兴趣的小伙伴自习某度

    json        这个就不说了,写接口的接触的最多。。。(多到想吐)

完成操作以后的感觉:

  真特娘的慢,第二个参数是queryset,他序列的时候会把所有的字段都给你序列化出来(暂时是没有找到指定字段序列化的方法),一点没有ModelSerializers那么贴心。点开源码进去一瞅,也是用for循环来遍历的,而且操作的字段更多了,比手动序列化更费时间。到此为止,此路GG,另求他法吧,老子去也!!!!

最新文章

  1. Android_layout 布局(二)
  2. cascade 介绍与用法 ( oracle)
  3. webservice 简单入门 (NLY)
  4. Java多线程基础(一)
  5. 推荐一篇java抽象类和接口区别的文章
  6. ESXi云管理平台
  7. [ios][swift]swift 怎么去除 optional
  8. [sql server发布订阅]after触发器执行失败造成复制不成功
  9. javascript读取本地文件
  10. Android中EditText,Button等控件的设置
  11. MEF简介及简单的Demo
  12. Linux 系统裁剪笔记 软盘2
  13. Web版记账本开发记录(二)开发过程遇到的问题小结1 对数据库的区间查询
  14. Java 基础 多线程和线程池基础
  15. 使用NetworkX模块绘制深度神经网络(DNN)结构图
  16. MongoDB 教程(七):插入文档、更新文档、删除文档
  17. 1. 怎么设置可以使得虚拟机里面既可以访问主机也可以访问局域网而且是静态ip
  18. 利用scrapy_redis实现分布式爬虫
  19. Java中的三元运算:a = (a > b)?a:b
  20. JavaScript中的一些小技巧

热门文章

  1. leetcode73:minmum-window-substring
  2. ORA-00020: maximum number of processes (40) exceeded模拟会话连接数满
  3. day88:luffy:支付宝同步结果通知&接收异步支付结果&用户购买记录&我的订单
  4. ImpalaTest
  5. 154. Find Minimum in Rotated Sorted Array II(循环数组查找)
  6. idea开发工具下,进行多个线程切换调试
  7. 为什么关不掉所有的OSD
  8. Spring第二天,你必须知道容器注册组件的几种方式!学废它吊打面试官!
  9. RSA脚本环境配置-攻防世界-OldDriver
  10. IDM下载器的自定义设置