博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Django的序列化问题。serializers
阅读量:4696 次
发布时间:2019-06-09

本文共 965 字,大约阅读时间需要 3 分钟。

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

  

from django.core import serializersorder_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,另求他法吧,老子去也!!!!

转载于:https://www.cnblogs.com/ppzhang/p/10071956.html

你可能感兴趣的文章
数据库高级查询
查看>>
C语言实现封装、继承和多态
查看>>
创建文件
查看>>
Nginx 相关介绍
查看>>
leetcode[33]Search in Rotated Sorted Array
查看>>
安卓上按钮绑定监听事件的两种写法
查看>>
OpenCV Shi-Tomasi角点检测子
查看>>
eval(PHP 4, PHP 5)
查看>>
readelf用法小记
查看>>
结对编程进展总结
查看>>
Java中JavaScript unescape与escape函数算法
查看>>
js的基础要点
查看>>
第一篇
查看>>
C#结构体和类的区别
查看>>
模板 - 数论函数
查看>>
windows Api AlphaBlend的使用方法
查看>>
mysql主从延迟高的原因
查看>>
Leetcode 47. Permutations II
查看>>
DLL入门浅析【转】
查看>>
sql server:取当前时间前10分钟之内的数据 dateadd()
查看>>