一、定义序列化器
a、如果需要使用DRF框架来实现序列化、反序列化、数据库操作,在子应用中创建serializers.py文件
b、文件名推荐命名为serializers.py

在serializer.py文件中定义序列化器类

二、定义序列化器类规则说明
1、必须继承Serializer类或者Serializer子类
2、定义的序列化器类中,字段名要与模型类中的字段名保持一致
3、定义的序列化器类的字段(类属性)为Field子类
4、默认定义哪些字段,那么哪些字段就会返回前端;同时也必须得输入(前端需要传递)
5、常用的序列化器字段类型:
IntegerField-》int
CharField-》str
BooleanField-》bool
DateTimeField-》datetime
6、id中的参数:min_value=1,max_value=1000:表示限制id最小值不能小于1,,最 大值id不能大于1000
7、可以在序列化器中指定不同的选项
label和help_text,与模型类中的verbose_name和help_text参数一样
IntegerField,可以使用max_value指定指定最大值,min_value指定最小值
CharField,可以使用max_length指定最大长度,min_length指定最小值
7、定义的序列化器字段中,required默认为True,说明默认定义的字段得必须输入和输出
8、如果在序列化器字段中,设置required=False,那么前端用户可以不传递该字段
(校验时会忽略该字段)所以不会报错
9、如果未定义模型类中的某个字段,那么该字段不会输入也不会输出
10、需求:前端必须得输入(反序列化输入)name(必须得校验),但是不会需要输出(序列化输出)
如果某个参数指定了write_only=True:那么该字段仅仅只输入(反序列化输入,做数据校验),
不会输出(序列化输出),默认为write_only=False
11、前端可以不用传递,但是后端需要输出?
如果某个参数指定了read_only=True:那么该字段仅仅只输出(序列化输出),
不会输入(反序列化输入,做数据校验),默认为read_only=False
name必传参数不能设置read_only=True
12、在序列化器类中定义的字段,默认allow_null=False,该字段不允许传递空值,
如果指定allow_null=True,那么该字段允许传递null
13、在序列化器类中定义CharField字段,默认allow_blank=False,该字段不允许为空字符串,
如果指定allow_blank=True,那么该字段允许传递空字符串
14、在序列化器类中定义的字段,可以使用default参数来指定默认值,如果指定了default参数,那么用户可以不用传递,会将default指定的值作为传入参数。
三、引用序列化器
1、可以使用序列化器进行序列化输出操作
a、创建序列化器类对象
b、可以将模型对象或者查询集对象、普通对象、嵌套普通对象的列表,以instance关键字来传递参数
c、如果传递的是查询集对象、嵌套普通对象的列表(多条数据),必须得设置many=True

d、如果传递的是模型对象,普通对象,不需要设置many=True

e、可以使用序列化器对象的.data属性,获取序列化器之后的数据(字典、嵌套字典的列表)


2、创建数据

3、获取详细数据

4、更新数据

5、删除数据
不涉及序列化输出操作

四、应用反序列化器

1、定义序列化器类,使用data关键字参数传递字典参数

2、可以使用序列化器对象调用.is_valid()方法,才会开始对前端输入的参数进行校验

3、如果校验通过.is_valid()返回True,否则返回False

4、如果调用.is_valid()方法,添加raise_exception=True,校验不通过会抛出异常,否则不会抛出异常
5、只有在调用.id_valid()方法之后,才可以使用序列化器对象调用.errors属性,来获取错误的提示信息(字典类型)
6、只有在调用.is_valid()方法之后,才可以使用序列化器对象调用.validated_data属性,来获取校验通过之后的数据,与json.loads转化之后的数据有区别
1、创建数据

2、更新数据

3、删除一条项目数据
4、获取一条项目数据(获取详情数据)
5、获取所有项目数据(获取列表数据)不涉及反序列化输入操作

django中序列化、反序列化过程相关推荐

  1. 敏捷中gwt含义_在GWT中序列化/反序列化Json

    敏捷中gwt含义 JSON和GWT 最近, GWT用户小组中进行了有趣的讨论 ,涉及在客户端对JSON进行序列化/反序列化的最佳实践. 这篇文章旨在突出其重点. 到目前为止,在GWT中有三种将对象转换 ...

  2. 在GWT中序列化/反序列化Json

    JSON和GWT 最近, GWT用户小组中进行了有趣的讨论 ,涉及在客户端对JSON进行序列化/反序列化的最佳实践. 这篇文章旨在突出其重点. 到目前为止,在GWT中有三种将对象转换为JSON并从客户 ...

  3. django中序列化器字段参数、关联字段

    一.PrimaryKeyRelatedField 1.可以定义PrimaryKeyRelatedField来获取关联表的外键值 2.如果通过父表获取从表数据,默认需要使用从表模型类名小写_set作为序 ...

  4. Django的序列化和反序列化

    在开发REST API接口时,视图中做的最主要有三件事: 将请求的数据(如JSON格式)转换为模型类对象 操作数据库 将模型类对象转换为响应的数据(如JSON格式) 序列化可以理解为: 将程序中的一个 ...

  5. Java 中序列化与反序列化

    一. 序列化和反序列化概念 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是一种将这些字节重建成一个对象的过程.将程序中的对象,放入文 ...

  6. java中序列化与反序列化_Java中的序列化

    java中序列化与反序列化 Java提供了一种称为序列化的机制,以按字节的有序或字节序列的形式持久化Java对象,其中包括对象的数据以及有关对象的类型和存储在对象中的数据类型的信息. 因此,如果我们已 ...

  7. OWASP TOP 10(六)反序列化漏洞(序列化和反序列化、漏洞原理、PHP中的序列化和反序列化、魔术方法、Typecho_v1.0中的反序列化漏洞)

    文章目录 反序列化漏洞 一.概述 1. 序列化和反序列化 2. 序列化的目的 二.PHP中的序列化与反序列化 1. 概述 2. 示例序列化与反序列化 3. 反序列化漏洞 - PHP中的魔术方法 - T ...

  8. java中序列化与反序列化

    一.基本概念 1.序列化和反序列化的定义: (1)Java序列化就是指把Java对象转换为字节序列的过程Java反序列化就是指把字节序列恢复为Java对象的过程. (2)序列化最重要的作用:在传递和保 ...

  9. keypair java_如何在Java中序列化和反序列化RSA KeyPair

    我想在我的Java应用程序中实现一些非常基本的安全性,但是一开始我就陷入了困境. 我想做的是这样的: 1-生成RSA密钥对 2将这些密钥以序列化形式存储在数据库中,以便在下次运行该应用程序时重新创建它 ...

最新文章

  1. python之操作系统介绍,进程的创建
  2. Vs + Qt 编译 .ui 文件
  3. 前端学习(2891):vue工程化配置
  4. 模态窗口和非模态窗口
  5. 阿里云cloudmonitor服务导致CPU暴增的异常
  6. 数据结构—栈的应用(括号匹配、表达式求值、递归)
  7. Java基础:基础加强巩固
  8. C算法及PHP学习笔记_01
  9. 家居行业如何做好私域布局?
  10. 如何在北京购车外地上牌
  11. AnimeGAN v2:动漫风格化GAN
  12. 浏览器的滚动条滚动时,导航条的背景变色
  13. bilibili 哔哩哔哩 2018秋招试题
  14. 宋宝华:slab在内核内存管理和用户态Memcached的双重存在
  15. 互联网3.0时代下垂直搜索的发展研究
  16. 源程序清单-汽车动力性计算图表软件V1.0
  17. 考研英语 - word-list-50
  18. iOS开发——使用Charles进行http网络抓包详解
  19. Java中super()的使用
  20. xml文件中引入xsd文件问题解决

热门文章

  1. 一文了解2020年中国液冷数据中心行业市场现状与发展前景分析市场规模有望破千亿...
  2. 弱电工程光纤传输基础知识
  3. 成功解决AttributeError: type object ‘h5py.h5r.Reference‘ has no attribute ‘__reduce_cython__‘
  4. Pandas to_json() 中文乱码,转化为json数组
  5. 第二次周考题目答案整理
  6. WinForm界面设计优化过程
  7. java.lang.NullPointerException 空指针异常问题
  8. 全方面了解和学习PHP框架 PHP培训教程
  9. 绝大部分项目都是跟金融创新、互联网、移动互联网、社区经济、分享经济、互联网金融有关...
  10. VB查询数据库之写入数据库——机房收费系统总结(三)