框架的序列化与反序列化

DRF

使用Django rest_framework实现rest api;

总概图

RESTful设计方法

1.域名

2.版本

3.路径

4.HTTP动词

5.过滤信息

6.状态码

7.错误处理

8.返回结果

9.超媒体

10.其他;服务器尽量返回json数据,避免xml

序列化;

获取数据对象----》返还json给前端

ser.data; 获取查询后的数据

使用关联对象;

PrimaryKeyRelatedField;

该字段将被序列化成为关联对象的主键;

StringRelatedField;

此字段将被序列化为关联对象的字符串表示方式;

HyperlinkedRelatedField;


SlugRelatedField;


to_representations方法不仅局限在控制关联对象格式上,适用于各个序列化器字段类型。(重写字段格式)

反序列化;

  • 获取前端数据----》数据验证---》将验证后的数据进行保存或更新----》得到数据

  • ser.is_valid(); 验证通过返回True,否则为False

  • validated_data ; 获取验证后的数据

  • orderedDict;类似字典的方式存储数据

  • ser.errors;查看错误信息(之前在代码行定义)

单个字段验证;

多个字段验证;

  • 定义方法验证字段必须返回相应的值

保存与更新;

  • partial=True;使得之前所有required=False变为True,True变为False;

模型类序列化器;

  • 自动生成自己想要的序列化器,简化代码,工具包早已定义好
  • exclude=(‘’)表示排除某个字段的输出;

  • depth=1;表示层级嵌套一层;

例如;一个英雄对象嵌套一层图书信息;
显示指明字段;

为字段添加参数;

序列化;从数据库获取数据转换为json数据等其他数据格式返回给前端

反序列化;对于数据的post与put进行数据的修改与删除等等数据库操作,使用反序列化,获取前端需要操作的json数据等其他格式信息,校验数据(与数据库进行对比),在反序列化里进行修改成模型类对象数据保存,然后返回给前端;

你可能感兴趣的:(框架的序列化与反序列化)