django自带的序列化组件
1.什么是序列化组件
在django中,自带一个序列化组件,它是用来将数据进行整理、转化成特定的为一个特定的格式(比如json数据格式),然后传输给前端,以便前端对数据进行处理操作。
2.为什么要用序列化组件
当我们从数据库取出一些数据时,我们需要将数据转成特定的格式,比如列表套字典的形式,然后将这些数据序列化成json的格式传输给前端,这就需要我们在后端把数据库里的数据每一个都遍历取值出来,这样比较麻烦,而且当数据字段很多的时候,我们很多遍历出来!代码如下:
后端代码:
from django.http import JsonResponse # 导入JsonResponse模块
from app01 import models
def ab_ser(request):
user_queryset = models.User.objects.all() # 查询所有的数据对象
user_list = [] # 创建一个空列表
for user_obj in user_queryset: # 循环出每一个数据对象
tmp = { # 利用对象点的方式取出每一个对应元素来充当字段的值
'pk':user_obj.pk,
'username':user_obj.username,
'age':user_obj.age,
'gender':user_obj.gender
}
user_list.append(tmp) # 添加到列表中
return JsonResponse(user_list, safe=False) # 转换成json格式返回给前端页面(safe属性为ture则表示只能传dict字典的形式,因为现在为列表的形式,所以改为False)
前端代码:
<body>
{% for user_obj in user_list %}
<p>{{ user_obj }}</p>
{% endfor %}
</body>
所以,这时候django给我们提供了一个自带的序列化组件,它能够将从数据库取出的数据,自动整合成一个特定的格式!大大减少了我们的工作!
3.django自带的序列化组件
自带的序列化模块为serializes
# 格式:serializers.serialize('序列化成什么格式',数据)
# 示例:
from django.core import serializers # 导入
def ab_ser(request):
user_queryset = models.User.objects.all()
res = serializers.serialize('json',user_queryset) # 序列化成json格式数据
"""会自动帮你将数据变成json格式的字符串 并且内部非常的全面"""
return HttpResponse(res) # 返回给前端页面
'''
[{"model": "app01.user",
"pk": 1,
"fields": {"username": "gary", "age": 19, "gender": 1}},
{"model": "app01.user",
"pk": 2,
"fields": {"username": "tom", "age": 20, "gender": 2}},
{"model": "app01.user",
"pk": 3,
"fields": {"username": "kevin", "age": 29, "gender": 3}},
{"model": "app01.user",
"pk": 4,
"fields": {"username": "jack", "age": 38, "gender": 4}}]
'''
# 我们可以看到它帮我们处理的数据是非常全面的,
# 告诉了我们这个数据来自于哪一个应用下的拿一张表,还告诉了我们对应的主键值,和详细信息
django自带的序列化组件的更多相关文章
- ajax发送json格式与文件数据、django自带的序列化器(了解)
上期内容回顾 聚合查询和分组查询 # 聚合查询 max min sum avg count # 查询关键字:aggregate from django.db.models import Max, Mi ...
- Django框架第九篇--Django和Ajax、序列化组件(serializers)、自定义分页器、模型表choice参数
Django和Ajax 一.什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”.即使用Javascript语 ...
- Django day26 HyperlinkedIdentityField,序列化组件的数据校验以及功能的(全局,局部)钩子函数,序列化组件的反序列化和保存
一:HyperlinkedIdentityField(用的很少):传三个参数:第一个路由名字,用来反向解析,第二个参数是要反向解析的参数值,第三个参数:有名分组的名字 -1 publish = ser ...
- Django的rest_framework的序列化组件之序列化多表字段的方法
首先,因为我们安装了restframework,所以我们需要在django的settings中引入restframework INSTALLED_APPS = [ 'django.contrib.ad ...
- Django的restframework的序列化组件之对单条数据的处理
之前我们学习的都是处理书籍或者出版社的所有的数据的方法,下面我们来看下处理单个书籍,或者单个出版社的方法 这个时候我们就需要重新写一个类,这个类的方法,就需要有3个参数,参数1是self,参数2是re ...
- Django的rest_framework的序列化组件之serializers.ModelSerializer介绍
这里的介绍的serializers.ModelSerializer就和我们之前学习的modelform一样 serializers.ModelSerializer如下几个功能 1.序列化queryse ...
- Django 之restfromwork 序列化组件实现数据增删查改
rest-framework序列化之Serializer models.py from django.db import models # Create your models here. class ...
- Django中数据传输编码格式、ajax发送json数据、ajax发送文件、django序列化组件、ajax结合sweetalert做二次弹窗、批量增加数据
前后端传输数据的编码格式(contentType) 提交post请求的两种方式: form表单 ajax请求 前后端传输数据的编码格式 urlencoded formdata(form表单里的) ja ...
- Django序列化组件与数据批量操作与简单使用Forms组件
目录 SweetAlert前端插件 Django自带的序列化组件 批量数据操作 分页器与推导流程 Forms组件之创建 Forms组件之数据校验 Forms组件之渲染标签 Forms组件之信息展示 S ...
随机推荐
- 安装Nmap到CentOS(YUM)
Nmap是Linux下的网络扫描工具,我们可以扫描远端主机上那些端口在开放状态. 运行环境 系统版本:CentOS Linux release 7.3.1611 (Core) 软件版本:无 硬件要求: ...
- Mac远程windows工具
现在很多小伙伴都是使用MAC系统,但在工作中或多或少会遇到需要远程windows的情况,今天给大家安利一款软件,让你轻轻松松远程windows Microsoft Remote Desktop Mic ...
- resttemplate 请求方式详解
get 普通请求: restemplate.getForEntity(url,String.class).getBody(); get 导出请求: restemplate.getForEntity(u ...
- ES6 伪数组转真数组
更新日志 2022年6月13日 发布. 2022年5月19日 笔记迁移到博客. 直接上代码 [...a];
- 开发工具-RSA加解密
更新日志 2022年6月10日 初始化链接. https://toolb.cn/rsa
- 李呈祥:bilibili在湖仓一体查询加速上的实践与探索
导读: 本文主要介绍哔哩哔哩在数据湖与数据仓库一体架构下,探索查询加速以及索引增强的一些实践.主要内容包括: 什么是湖仓一体架构 哔哩哔哩目前的湖仓一体架构 湖仓一体架构下,数据的排序组织优化 湖仓一 ...
- 【C#/VB.NET】 将PDF转为SVG/Image, SVG/Image转PDF
SVG是一种图形文件格式,它的英文全称为Scalable Vector Graphics,意思为可缩放的矢量图形.它在放大或者改变尺寸的情况下其图形质量不会有所损失,且与 JPG 和 GIF 图像比起 ...
- 记一次grpc server内存/吞吐量优化
背景 最近,上线的采集器忽然时有OOM.采集器本质上是一个grpc服务,网络设备通过grpc协议将数据上报后,采集器进行格式等整理后,发往下一个系统(比如分析,存储). 打开运行环境,发现特性如下: ...
- 重学ES系列之模版字符串
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Canal搭建
目录 搭建环境 MySQL环境 Canal环境 客户端 总结 需求:解决私有环境数据库的基础数据同步问题,每当中心库基础数据发生改变时,其他私有库都会增量同步 Canal主要用途是基于 MySQL 数 ...