序列化器

序列化器作用

  1、序列化,序列化器会把模型对象转换成字典,经过 response 以后变成 json 字符串,即把数据库的表数据转换成客户端的json 格式并返回

  2、反序列化,反序列化器会把客户端发送过来的数据。经过 request 以后变成字典,序列化器可以把字典转成模型

  3、反序列化,完成数据校验功能

 

简单使用

  1、写一个序列化的类,继承 serializer

  2、在类中写要序列化的字段,想序列化哪个字段,就在类中写哪个字段

  3、在视图类中使用,实例化得到序列化类的对象,把需要序列化的对象传入

  4、序列化类的对象.data 是一个序列化后的字典

  5、把字典返回,如果不使用 rest_framework 提供的 Response,就得使用JsonResponse

  

使用序列化组件修改数据,即反序列化

  1、写一个序列化的类,继承serializer

  2、在类中写要反序列化的字段,想反序列化哪个字段,就在类中写哪个字段,字段的属性

  3、如果已有的字段的校验规则不符合要求,可以写钩子函数(局部和全部)

    局部钩子:函数名的规则为 validate_字段名,接收一个参数

      如:

                             

   

    全局钩子:可针对这个序列化器进行全局检验

        

   

  4、可以使用字段的 pid = serializers.IntergerField(validator=[whether_existed_project_id]) validator来检验写一个函数

    validator =【】,列表中写函数内存地址

        

  5、更新数据

        

 

  6、在视图类中使用,导入,实例化得到序列化类的对象,把实例化的对象传入,修改的数据传入

    book = Book.objects.filter( id=pk ).first()

    boo_ser = ProjectSerializer( book, request.data ) 即

    boo_ser = ProjectSerializer( instance = book, data = request.data )

  7、数据检验 :if boo_ser . is_valid()

  8、如果检验通过,就保存:boo_ser.save()

  9、如果检验不通过,就报异常

  10、新增数据

        

   11、删除数据

        

 模型类序列化器

  指定模型,针对哪个字段进行反序列化,不需要重新create和update,若反序列化有其它字段,需要重写create和update

        

         

   1、many=True 的实际用途

      序列化多条数据,需要传many=True

          

 

 通俗易懂说法

    序列化:将 Django 模型数据转化为 json 格式字符串(前端可接收的数据)。

    序列化过程:将Django 模型数据转化为json 格式字符串,使用 JsonResponse 方法进行序列化输出,供前端接收

    反序列化:前端传过来的 json 格式数据,转化为 Django 模型类对象

 

 创建接口过程:

    1、反序列化过程

    2、操作数据库

    3、序列化过程

 

 数据库增删改查流程

    增:校验请求参数  ---》 反序列化  ---》 保存数据 ---》序列化返回

    删:判断要删除的数据是否存在 ---》 执行数据库删除操作

    改: 判断要修改的数据是否存在 ---》 校验请求参数 ---》 反序列化 ---》 保存数据 ---》将保存的数据库序列化并返回

    查:查询数据库 ---》 将数据序列化返回

 

posted @ 2023-09-19 10:42  哩子吖  阅读(84)  评论(0)    收藏  举报