如果前端是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,在元类里面定要自动映射的模型和序列化或者反序列化的字段.