Django请求生命周期
过程描述:
1.浏览器发起请求
2.WSGI创建socket服务器,接收请求(Httprequest)
3.中间件处理请求
4.Url路由(根据当前氢气球的URL找到视图函数)
5.View视图,进行业务处理(OPM处理数据,从数据库取到数据返回给我VIew视图;view视图将数据渲染到template模板;将数据返回)
6.中间件处理响应
7.WSGI返回响应(HTTPRespones)
8.浏览器渲染
FBV
就是在视图里使用函数处理请求。
过程:
用户发送url请求,Django会一次遍历路由映射表中的所有记录,一旦路由映射表其中的一条匹配成功了,就执行视图函数中对应函数名。
CBV
就是在视图里使用类处理请求。
过程:
当服务端使用cbv模式的时候,用户发给服务端的请求包含url和method,这两个信息都是字符串类型; 服务端通过路由映射表匹配成功后会自动去找dispatch方法,然后Django会通过dispatch反射的方式找到类中对应的方法并执行; 类中的方法执行完毕之后,会吧客户端想要的数据返回给dispatch方法,有dispath方法吧数据返回给客户端。
原文:https://www.cnblogs.com/duhy/p/11657911.html