Django REST Framework的序列化器是什么?

# 转载请留言联系

 

用Django开发RESTful风格的API存在着很多重复的步骤。详细可见:https://www.cnblogs.com/chichung/p/9933861.html

过程往往都是,(1)把到前端请求的过来的json字符串,然后通过json.loads转换为字典,字典在转换为对象,保存在数据库。

(2)返回的时候呢,都是先把对象查询出来,然后转换为字典,再通过JsonResponse转换为json字符串并且返回给前端。

接口的开发,基本就是在重复这两个动作,而且这两个动作语句特别多,如果有一样东西可以简单地完成这两个动作就好了。还真的有,那就是Django REST Framework(简称DRF)!

 

  • DRF的环境安装与配置

安装:

pip install djangorestframework

配置:

在settings.py:

INSTALLED_APPS = [
    ...
    'rest_framework',
]

 

  • 序列化器的序列化与反序列化

那么,DRF是怎样实现这种操作的呢?就是用序列化器。

首先要明白两个概念,序列化与反序列化:

序列化:将程序中的一个数据结构类型转换为其他格式(JSON、XML等),例如:将Django中的模型类对象装换为JSON字符串,这个转换过程我们称为序列化。简单来说:对象 -> 字典 -> json

反序列化:将其他格式(JSON、XML等)转换为程序中的数据,例如将JSON字符串转换为Django中的模型类对象,这个过程我们称为反序列化。简单来说:json -> 字典 -> 对象

我们开头讲的第(1)种动作,就可以用反序列化完成。第(2)种动作,就可以用序列化完成。

 

  • 序列化与反序列化的作用

1.序列化的作用:

1.对象 -> 字典

使用Django框架查询部门数据:

 

用序列化查询部门数据:(简化上图的步骤2)

 

2.反序列化的作用:

1.json -> 字典 -> 对象

2.校验参数的合法性(可以校验传过来的json转换成字典后,能否满足数据库的字段约束)

3.校验通过后,可以在数据库中保存或修改数据

 

使用Django框架新增或修改部门:

使用反序列化新增或修改部门:(简化上图的步骤3、4)

 

posted @ 2018-11-09 17:08  苦瓜爆炒牛肉  阅读(1361)  评论(1编辑  收藏  举报