DRF-序列化和反序列化进一步解释



我开始使用Django Rest Framework,我对序列化程序有点困惑,有时它被调用来序列化,有时反序列化,有时用data参数调用,有时不调用。何时以及如何使用序列化程序进行序列化和反序列化?

序列化是在REST的情况下准备数据发送到网络的过程。在Django REST框架的情况下,序列化的结果是json/xml。因此,您需要在获得数据时序列化数据,并在使用POST/PUT请求将数据保存到模型时反序列化数据。

进一步阅读:http://www.django-rest-framework.org/api-guide/serializers/

序列化:将查询集等复杂数据类型转换为字典等原生数据类型。DeSerialization:将python本机数据类型转换为复杂数据类型。

因此这两个操作都是用同一个序列化程序完成的。基本上,当我们用参数数据调用序列化程序时(比如serializer=serializer(data=data_dict),它会返回一个复杂的对象。当我们用复杂对象调用它时,它会给出一个字典。

所以基本上没有什么比反序列化器更好的了。序列化程序根据我们传递的参数执行序列化和反序列化,这就是我们的调用方式

我们序列化数据以通过网络发送,这样就可以在浏览器中轻松地对其进行解释和渲染。我们反序列化数据以获得复杂的对象,并可能将其保存到数据库中。

谢谢!希望你觉得这很有帮助。:)

序列化:

复杂数据类型-->(serialize)Python本机数据类型-->JSON-

将复杂数据类型(如queryset)转换为Python本机数据类型(例如dictionary)称为序列化。这个Python原生数据类型(字典)被进一步转换为JSON对象,以便在前端应用程序中使用。

反序列化(序列化反之亦然):

JSON-->(反序列化)Python本机数据类型-->复杂数据类型(存储在数据库中)

最新更新