Django REST Framework
前言:
我们项目的后端的业务逻辑可以大体概括为以下四步:
- 获取数据:从前端获取数据
- 校验数据:进行数据的校验
- 处理数据:对数据进行CRUD 操作
- 响应:将处理后的结果转化为
json数据类型
返回给前端小结:
- 我们可以把
1、2、3
步称为:反序列化处理 --> 获取数据到CRUD操作- 可以把第
4
步称为:序列化处理 --> 处理数据结果转为JSON数据
格式,响应前端
序列化
与 反序列化
- 序列化
- 将 数据对象 转换为 json数据 类型返回到前端
- 反序列化
- 将 json数据 转换成 后端模型类
DRF
django rest framework
简称:DRF
。是建立在 Django 框架基础之上在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。
在开发
REST API
的视图中,虽然每个视图具体操作的数据不同,但 增、删、改、查 的实现流程基本 套路化,所以这部分代码 复用性高:
- 增:校验请求数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
- 删:判断要删除的数据是否存在 -> 执行数据库删除
- 改:判断要修改的数据是否存在 -> 校验请求的数据 -> 执行反序列化过程 -> 保存数据库 -> 将保存的对象序列化并返回
- 查:查询数据库 -> 将数据序列化并返回
DRF
通过把web业务系统中会出现的每一步流程拆分,进行模块化,概念化,让开发者知道需要开发的业务属于哪一种概念,放到哪一个模块下面,从而在DRF
的大框架下特定的位置编写,这样减少了一份功能多份代码实现的麻烦,也因为规范化编码提高了开发者的效率。特点:
- 提供了定义序列化器[Serializer]的方法,可以快速的根据 Django ORM 或者其他库自动 序列化 和 反序列化;
DRF
提供了丰富的类视图,MiXin扩展类,简化视图的编写;- 丰富的定制层级:函数视图、类视图、视图集合到自动生成 API,满足各种需要;
- 多种身份认证和权限认证方式的支持;
- 内置了限流系统;直
- 观的 API web 界面;
- 可扩展性,插件丰富