DRF介绍,DRF项目开发,DRF项目的视图类的dispatch源码解析
目录
1|0一、DRF介绍
1|11. 什么是DRF
- DRF就是django框架的一个插件或者说是django的一个工具包,用于在Web后台构建Restful接口。
1|22. 为什么要用DRF
(1)使用DRF的原因
- 总的来说:
- 既然django有自带的CBV模型,为什么还要重新再学习一个DRF来搭建我们的项目呢。因为drf提供了更多的功能(如三大验证,Restful接口等),它的CBV模型比django自带的CBV模型更加好用,对大项目来说功能更完善,开发效率更高。
- 细的来说:
- 先从项目规模来看,如果是小项目(几个简单的接口和页面),用Django的FBV足矣,简单明了,学习成本低;中大型项目、多人参与的项目,建议使用DRF,虽然学习路线较长,但是长期来看,效率和规范性都更高
- 我们重用DRF的另一个原因是项目分工的精细化,通过引入前端团队,将原来的模板直出的方式优化为前后台分离,页面渲染的数据都通过Restful接口来提供,前端工程化,后端服务化,代码解耦,开发效率更高
(2)站在开发者的角度来说用DRF的好处(暂时列举这么多)
- 安装到Django工程中,你就能在Django中提供Restful接口了
- 你可以在一个Web页面上浏览自己提供了哪些API,并且可以通过这个页面测试这些API
- 你不用自己写一套接口鉴权代码了
- 你不用自己写大量的CRUD接口了,简单配置即可
- 你不用自己写大量的条件查询接口了,简单配置即可
- 你不用自己写后台分页逻辑了,简单配置即可
- 你不用自己写接口限流逻辑了,简单配置即可
- 你不用自己写各种简单的参数校验逻辑了,简单配置即可
- 你不用自己注册各种路由了,简单配置即可
- 你的权限控制逻辑不用写到业务逻辑中了
2|0二、用DRF开发后端项目
-
就是下载安装drf之后,在我们新建的django项目中,注册drf,再书写符合restful接口规范的路由,在views文件中书写drf的CBV模型(drf使用的视图类都是继承APIView的类)。
-
项目实例:
2|1
3|0三、APIView请求生命周期
- APIView是drf的视图类继承的类,就是drf提供的类
4|0四、源码的dispatch中的方法
- 源码的dispatch作用是对不同请求方式的分发到对应的类的方法,最后将响应结果返回给前端。
- 源码的dispatch就相当于是视图层的入口。其内部包含很多业务逻辑
4|11. dispatch中的功能模块
(1)请求模块
(2)解析模块
- 配置允许解析的数据格式类型,并最后把解析的数据都赋值给新的request.data
(3)响应模块
(4)渲染模块
- 配置客户端得到响应数据后的渲染方式
(5)异常模块
-
DRF自带的异常模块,只会捕捉前端的异常,后端的异常需要我们自己捕捉,所以我们需要自己重写异常模块,为原来的异常模块添加捕捉后端异常的功能。
-
重写异常模块,分两步
__EOF__

本文作者:BigSun丶
本文链接:https://www.cnblogs.com/Mcoming/p/12093446.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Mcoming/p/12093446.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
Django框架的使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!