共计 653 个字符,预计需要花费 2 分钟才能阅读完成。
-
前端发送请求
-
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 )就用到了 解析器 –> 视图处理数据,用到了序列化(对数据进行序列化或验证) –> 视图返回数据可以用到分页