zoukankan      html  css  js  c++  java
  • 关于Django的序列化问题。serializers

      在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,另求他法吧,老子去也!!!!

  • 相关阅读:
    [转]自定义水晶报表纸张大小
    [转]Winform(C#)DataGridView显示Tooltip
    格式化日期字符串
    工具下载地址
    servlet: org.apache.tomcat.util.http.fileupload.FileUploadException: Processing of multipart/formdata request failed
    <<精通Spring2.x>>笔记:第2章学习源码
    andriod 缩略图Thumbnails学习
    转: Eclipse程序员要掌握的常用快捷键
    代码:指定大小的图片
    Android自定义的Camera的图片会90度旋转问题
  • 原文地址:https://www.cnblogs.com/ppzhang/p/10071956.html
Copyright © 2011-2022 走看看