创建和使用序列化器 – Django REST框架
在Django REST框架中,序列化的概念是将DB数据转换为可被javascript使用的数据类型。序列化器允许复杂的数据,如querysets和模型实例,被转换为本地Python数据类型,然后可以很容易地呈现为JSON、XML或其他内容类型。序列化器还提供了反序列化,允许解析后的数据在首先验证了传入的数据后被转换回复杂类型。REST框架中的序列化器与Django的Form和ModelForm类的工作非常相似。
要检查如何设置Django RESt框架并创建一个API,请访问 – 如何使用Django Rest框架创建一个基本API?
创建一个基本的串行器
要创建一个基本的序列化器,需要从rest_framework导入序列化器类,并为序列化器定义字段,就像在Django中创建一个表单或模型一样。
示例
这样,人们可以根据所需字段为任何特定的实体或对象声明序列化器。序列化器可用于序列化和反序列化数据。
使用序列化器对数据进行序列化
现在我们可以使用CommentSerializer来序列化一个评论,或者评论的列表。同样,使用序列化器类看起来很像使用表单类。让我们先创建一个Comment类来创建一个可以被我们的序列化器理解的Comment类型的对象。
现在我们的对象已经准备好了,让我们试着将这个注释对象序列化。运行下面的命令。
现在运行以下代码
现在让我们检查一下这个的输出。
我们可以使用Python的内置函数或rest框架的解析器将这些数据转换成JSON或XML格式。
使用序列化器来反序列化数据
反序列化与序列化类似。它意味着将数据从JSON格式转换为一个给定的数据类型。首先,我们把一个流解析成Python本地数据类型……(定义要反序列化的数据类型….)
首先,我们需要将这些json数据转换为可以被序列化器理解的数据,以便进行反序列化。
现在让我们把数据反序列化为原始状态
让我们检查输出和数据是否已经被反序列化: