Django Rest Framework - 生命周期

1 Django请求生命周期

  • 前端发送请求

  • wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架(Flask、Django)

  • 中间件处理请求,帮助我们对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session

  • 路由匹配,根据当前请求的URL找到视图函数,如果是FBV写法,通过判断method两类型,找到对应的视图函数;如果是CBV写法,匹配成功后会自动去找dispatch方法,然后Django会通过dispatch反射的方式找到类中对应的方法并执行

  • 视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、view视图将数据渲染到template模板

  • 视图函数执行完毕之后,会把客户端想要的数据返回给dispatch方法,由dispatch方法把数据返回经客户端

  • 中间件处理响应

  • wsgi,将响应的内容发送给浏览器

  • 浏览器渲染

2 drf请求生命周期

前端发送请求 –> Django的wsgi –> 中间件 –> 路由系统_执行CBV的as_view(),就是执行内部的dispath方法 –> 在执行dispath之前,有版本分析和渲染器 –> 在dispath内,对request封装 –> 版本 –> 认证 –> 权限 –> 限流 –> 通过反射执行视图函数 –> 如果视图用到缓存( request.data or request.query_params )就用到了 解析器 –> 视图处理数据,用到了序列化(对数据进行序列化或验证) –> 视图返回数据可以用到分页


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!