官方文档地址:http://www.django-rest-framework.org/tutorial/1-serialization/
1.什么是序列化
官方定义:串行器允许诸如查询集和模型实例复杂的数据转换为可随后被容易地呈现到机Python数据类型JSON
,XML
或其他内容类型。序列化程序还提供反序列化,允许在首次验证传入数据后将解析后的数据转换回复杂类型。REST框架中的序列化程序与Django Form
和ModelForm
类的工作方式非常相似。我们提供了一个Serializer
类,它为您提供了一种强大的通用方法来控制响应的输出,以及一个ModelSerializer
类,它提供了一个有用的快捷方式来创建处理模型实例和查询集的序列化程序。
其实序列化就是将我们实例化的对象变成json数据的过程,这个过程的实现其实很简单,总结起来就是(1)创建一个model也就是一张数据表(2)在项目app下定义一个序列化的类,你想序列化哪个表,想序列化哪个字段,就写哪个字段,具体怎么写下面我们按照官方文档来(3)根据数据表实例化一个对象(4)使用你创建的序列化的类对这个实例化的对象进行序列化
2.为什么要序列化,有什么用
学习一个新的技术就要知道为什么要学习,学习之后有什么作用。作为一个后端工程师,经常需要做的工作就是把数据从数据库中拿出来,然后返回给前端,前端再去操作这些数据,但是数据直接返回给前端是不行的,因为前端工程师需要的是json 数据,这时候就需要用到序列化,也就是将数据表中的各个字段和值转化为json 格式的数据。
3.实际项目操作
关于序列化官方给出了英文文档,虽然很完善,但是并不容易看明白,下面就是我按照英文文档对项目进行的一模一样的操作以及对它的理解
(1)进行序列化操作需要的框架
django,djangorestframework这是项目中需要用到的框架,安装起来也很容易(必须安装)
pip install django
pip install djangorestframework
(2)创建项目以及项目app
django-admin startproject tutorial
python manage.py startapp snippets
创建一个名为tutorial的项目,以及项目下面一个名为snippets的app
(3)在settings中配置我们的app
INSTALLED_APPS = [
'django.contrib.admin',
'djang