Django 请求的生命周期

Django的请求生命周期是指:当用户在浏览器上输入url到用户看到网页的这段时间内,Django所做的事情

一过程:

1.浏览器发起请求

2.WSGI创建socket服务端,接收请求(Httprequest)

3.middleview 中间件处理请求

(middleview 包含五个函数:

process_request : 请求进来时,权限认证 。

process_view : 路由匹配之后,能够得到视图函数。

process_exception : 异常时执行。

process_template_responseprocess : 模板渲染时执行。

process_response : 请求有响应时执行)

4.url路由,根据当前请求的URL找到视图函数

5.view视图,进行业务处理(ORM处理数据,从数据库取到数据返回给view视图;view视图将数据渲染到template模板;将数据返回)

6.中间件处理响应

7.WSGI返回响应(HttpResponse)

8.浏览器渲染

二.过程解析

三.FBV和CBV

FBV(function base views) 就是在视图里使用函数处理请求。

FBV方式请求的过程:

用户发送url请求,Django会依次遍历路由映射表中的所有记录,一旦路由映射表其中的一条匹配成功了,就执行视图函数中对应的函数名

CBV(class base views) 就是在视图里使用类处理请求。

CBV方式请求的过程:

当服务端使用cbv模式的时候,用户发给服务端的请求包含url和method,这两个信息都是字符串类型;

服务端通过路由映射表匹配成功后会自动去找dispatch方法,然后Django会通过dispatch反射的方式找到类中对应的方法并执行;

类中的方法执行完毕之后,会把客户端想要的数据返回给dispatch方法,由dispatch方法把数据返回经客户端。

posted on 2020-03-27 14:41  duanfengna  阅读(313)  评论(0)    收藏  举报