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 ... 
随机推荐
- 项目下载依赖后面加 -S -D -g 分别代表什么意思
			npm install name -S此依赖是在package的dependencies中,不仅在开发中,也在打包上线后的生产环境中,比如vue npm install name -D此依赖是在pac ... 
- 第06组Alpha冲刺 (4/6)
			目录 1.1 基本情况 1.2 冲刺概况汇报 1.郝雷明 2.曹兰英 3. 方梓涵 4.鲍凌函 5.董翔云 6.杜筱 7.黄少丹 8.曾丽莉 9. 詹鑫冰 10.吴沅静 1.3 冲刺成果展示 1.1 ... 
- 专家PID控制仿真学习
			目录 专家控制 专家系统 专家控制 学习笔记,用于记录学习 资料:<智能控制>(第四版)--刘金琨 专家系统 一.专家系统的定义 专家系统是一类包含知识和推理的智能计算机程序,其内部包含某 ... 
- 解决跨海高并发崩溃难题?so easy
			近年来随着互联网强势的发展浪潮,越来越多的企业选择跨境出海,扩展海外市场.而想要在一个陌生市场最快速地吸引到用户,一定不能缺少的就是丰富多样的各类活动.然而活动在带来大流量的同时,也带来了一些问题,比 ... 
- 在C#中使用正则表达式最简单的方式
			更新记录 本文迁移自Panda666原博客,原发布时间:2021年5月11日. 在.NET中使用正则表达式与其他语言并无太大差异.最简单的使用就是使用Regex类型自带的静态方法. 注意:在.NET中 ... 
- 论文解读(KP-GNN)《How Powerful are K-hop Message Passing Graph Neural Networks》
			论文信息 论文标题:How Powerful are K-hop Message Passing Graph Neural Networks论文作者:Jiarui Feng, Yixin Chen, ... 
- 【Redis】事件驱动框架源码分析(单线程)
			aeEventLoop初始化 在server.c文件的initServer函数中,对aeEventLoop进行了初始化: 调用aeCreateEventLoop函数创建aeEventLoop结构体,对 ... 
- MySQL-4-DDL
			DDL:数据定义语言 创建create 创建库 语法:create database [if not exists]库名 # 创建库 CREATE DATABASE IF NOT EXISTS boo ... 
- SAP 实例 13 Random Grouping with LOOP
			REPORT demo_loop_group_by_random. CLASS demo DEFINITION. PUBLIC SECTION. CLASS-METHODS: main, class_ ... 
- C#判断数组或集合中是否含有属性值为value的对象
			/// <summary> /// 判断list中是否有某个对象的Id_srvplan为value /// </summary> /// <param name=&quo ... 
