如何将DRF序列化器为?

摘要:一、序列化和反序列化 1、序列化:把我们的数据转换成指定的格式提供给别人 例如:我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以我们需要把数据进行序列化,变成字符串或者json数据,提供
一、序列化和反序列化 1、序列化:把我们的数据转换成指定的格式提供给别人 例如:我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或别的平台使用,所以我们需要把数据进行序列化,变成字符串或者json数据,提供给别人。 2、反序列化:把别人提供的数据转换/还原成我们需要的格式 例如:前端js提供过来的json数据,对于python而言json就是字符串,我们需要进行反序列化换成字典,然后接着字典再进行转换成模型对象,这样我们才能把数据保存到数据库中。 二、DRF中的序列化器 1、Serializer序列化器 序列化并返回给前端,其中bs序列化后的对象,bs.data就是要返回的值,many=True表示返回多条数据,通过Response返回json数据到前端。 接收前端POST提交的数据和校验: 注意: 此时如果要保存到数据库中,则需要使用常规的模型操作 create()方法。 也可以调用save()方法,但是调用save()方法的时候,会调用序列化器下的create()方法,create方法必须自定义(因为默认的create没有写任何内容)。 2、ModelSerializer序列化器 使用ModelSerializer定义序列化器的时候,不需要再像前面一样去自己定义序列化的字段,而是可以直接通过使用模型类。 创建序列化器:(model=Book: 指定对Book表模型进行序列化) --------返回数据到前端 / 接收前端提交的数据 / 保存数据到数据库中 / 更新数据到数据库中: 注意:此时要保存数据只需要调用save()即可,如果没有传入instance参数则为新增,如果传入了instance则为更新。