序列化和反序列化是什么?代码如何实现

如果前端是GET请求,模型类对象转成字典,返回改前端,这个过程为序列化.

如果前端是POST请求,要对数据库进行改动,先校验,再将数据写入数据库,字典转模型,这个过程称为反序列化.


在REST API的视图,基本上都是对数据库进行增删改查,drf框架把这些重复的增删改查的代码封装成了类视图和序

列化器,简化了重复代码的编写,节省了开发的时间.序列化器有2大作用,一是对数据进行校验,二是对数据进行转换.


代码实现:

如果视图继承的是view的时候:

1.创建serializer对象

1)用于序列化时,将模型类对象传入instance参数,  因为传了instance参数,serializer对象.save()的时候走的就是updatex方法,  查单一,查所有要序列化

2)用于反序列化时,将要被反序列化的数据传入data参数    新增和修改,删除都需要发序列化,is_valid()方法进行验证,如果传了data参数,又instance参数,serializer对象.save()的时候走的serializer里面的update方法,如果传了data参数,没有传instance参数,serializer对象.save()的时候走的serializer里面的create方法













如果类视图继承的是APIView或者它的子类的时候,那我们可以新建一个serializers.py文件,

如果有ORM模型,可以继承ModelSerializer,在元类里面定要自动映射的模型和序列化或者反序列化的字段.

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容