关于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,另求他法吧,老子去也!!!!
关于Django的序列化问题。serializers的更多相关文章
- django的序列化
关于django的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的Json格式 两种方法: 方法一:serializers: 缺点就是只能应用于对象 "&q ...
- django rest_framework 序列化组件详解
为什么要用序列化组件 当我们做前后端分离的项目,我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到 ...
- 从django的序列化到rest-framework 序列化
1.利用Django的view实现返回json数据 from django.views.generic import View from goods.models import Goods class ...
- 关于Django的序列化
阅读目录 Django支持的序列化格式 Django的序列化 Django支持的序列化格式 1 2 3 4 Identifier Information xml Serializes to and f ...
- django的序列化问题
Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式 1.serializers from django.core import seria ...
- Django 之 序列化
Django之序列化 关于Django中的序列化主要应用在将数据库中检索的数据返回给客户端用户,特别的Ajax请求一般返回的为Json格式. serializers 1 2 3 4 5 from dj ...
- Django-Rest-Framework的序列化之serializers 序列化组件
Django-Rest-Framework的序列化之serializers 序列化组件 restful framework 正常的序列化 from django.http import HttpRes ...
- 【Django】序列化
Django中序列化主要应用于将数据库中检索的数据返回给客户端用户,特别是Ajax请求一般返回为Json格式. * 1.from django.core import serializers** fr ...
- Django restframework 序列化之 ModelSerializer 小记
首先介绍一下相关概念 序列化器(Serializer) 1. 自定义型: 继承rest_framework.serializers.Serializer 2. 模型类型: 继承rest_frame ...
- Django框架 --序列化组件(serializer)
一 .Django自带序列化组件 Django内置的serializers(把对象序列化成json字符串) from django.core import serializers from djang ...
随机推荐
- 我的第二次C语言作业
这个作业属于哪个课程 https://edu.cnblogs.com/campus/zswxy/SE2020-2/homework/11422 这个作业要求在哪里 https://www.cnblog ...
- js 元素添加多个监听
function addListener(element,e,fn){ if(element.addEventListener){ element.addEventListen ...
- java联系人管理系统简单设计
本文实例为大家分享了java联系人管理系统毕业设计,供大家参考,具体内容如下 要求: 请使用XML保存数据,完成一个联系人管理系统. 用户必须经过认证登录后方可以使用系统. 注册 ...
- Java实现酒店客房管理系统
这篇文章主要为大家详细介绍了Java实现酒店客房管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现酒店客房管理系统的具体代码,供大家参考,具体内容如下 Log ...
- php post请求https
<?php $url = 'https://www.xxx.com'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); c ...
- Spring5.0源码学习系列之浅谈循环依赖问题
前言介绍 附录:Spring源码学习专栏 在上一章的学习中,我们对Bean的创建有了一个粗略的了解,接着本文浅谈Spring循环依赖问题,这是一个面试比较常见的问题 1.什么是循环依赖? 所谓的循环依 ...
- python dvwa布尔盲注自动化脚本(level=low)
仅供学习代码参考 1#python dvwa布尔盲注自动化脚本 2 import requests 3 import string 4 import time 5 INIT_URL="htt ...
- 给你一条sql语句如何进行优化
我们sql语句的书写是根据业务逻辑进行书写的,如果执行比较慢,那么我们对sql重写: 如分步查询,然后在代码层进行拼接:用临时表:改变sql语句的写法等等.我们称之为逻辑层优化. 然后我们看看每条sq ...
- 使用@Validated校验数据(除数据库做辅助)
一.controller层 /** * 使用@Validated来进行校验 * @author HuangJingNa * @date 2019年12月23日 下午6:02:20 * * @param ...
- 使用 JavaScript 操作浏览器历史记录 API
History 是 window 对象中的一个 JavaScript 对象,它包含了关于浏览器会话历史的详细信息.你所访问过的 URL 列表将被像堆栈一样存储起来.浏览器上的返回和前进按钮使用的就是 ...