目录
前篇讲了使用django连接mysql8.0数据库。在前后端分离为主流的情况下,django转为json还是有点麻烦,还有其它功能。功能相对专业的rest api有点弱,比如没有 OAuth,jwt(Json web token),所以需要一个专业的api框架。
Django REST framework就是一个专业的api框架,看名字就知道是rest风格的。
一、为什么要用专业的api框架
使用专业的api框架可以得到更有针对性的功能。如OAuth、jwt(Json web token)、不用json就自动转化为json,省去了编写python数据转json的麻烦。
还是原来的一句老话:专业的人做专业的事。
二、Django REST framework介绍
Django REST framework 是一个强大且灵活的工具包,用于构建 Web API。为什么要用它,官网当如下说明:
- Web 可浏览 API 对您的开发人员来说是一个巨大的可用性胜利。
- 身份验证策略,包括 OAuth1a 和 OAuth2 的包。
- 支持 ORM 和非 ORM 数据源的序列化。
- 一直可自定义 - 如果您不需要更强大的功能,只需使用常规的基于函数的视图。
- 广泛的文档和强大的社区支持。
- 受到 Mozilla、Red Hat、Heroku 和 Eventbrite 等国际知名公司的使用和信任。
2.1 序列化和反序列化可以复用
- 增:效验请求数据>执行反序列化过程>保存数据库>将保存的对象序列化并返回
- 删:判断要删除的数据是否存在.>执行数据库删除
- 改:判断要修改的数据是否存在>效验请求的参数>执行反序列化过程>保存数据库>将保存的对象序列化并返回
- 查:查询数据库>将数据序列化并返回
2.2 特点
1.提供了定义序列化器Serializer的方法,可以快速根据Django ORM 或者其他库自动序列化/反序列化
2.提供了丰富的类视图\MIXIN扩展类,简化视图的编写
3.丰富的定制层级:函数视图\类视图\试图结合到自动生成API,满足各种需要
4.多种身份认证和权限认证方式的支持
5.内置了限流系统
6.直观的API web界面
7.可扩展性 , 插件丰富
2.3核心任务
使用Django Rest framework的话,和之前使用Django时没多大差别,当然,更复杂的差别我也不知道
1.多了个serializers.py文件
这个文件的作用是Serializers把querysets和model instances这些复杂的数据结构转化为native Python 以便于以json,xml或其它内容类型的形式render出去。
2. 视图的核心功能变了
- 将数据库数据序列化为前端需要的格式,并返回
- 将前端发送过来的数据反序列化为模型类对象,并保存到数据库中
三、相关资料
Django Rest framework没有好的资料,官网文档就是一个不错的选择