django源码解析一(请求处理流程)
来源:互联网 发布:最全p2p在线网络投资 编辑:程序博客网 时间:2024/06/07 09:58
1.我们都知道WSGI是一个规范,规范了server和application之间通信的一些约束,server端在监听到请求之后,会把请求转给application去处理,他们之间关联起来的桥梁是一个env变量和一个start_response的回调函数,env用来初始化application的request请求,start_response方法用来将response返回给server。
2.每一个application都要实现一个__call__方法接收两个参数(environ, start_response),__call__方法执行server传过来的每一个请求,获取response的方法是 self.get_response(request), request是一个WSGIRequest的实例,这个WSGIRequest的实例在生成的时间传入一个参数 environ,根据environ生成一个request的实例,这个实例会根据environ的信息初始化request的基本信息。如下图:
3.get_response方法具体做了哪些事情?
先去循环执行没一个middleware的process_request方法,如果有返回值,则直接跳出循环,如果没有返回值,则依次执行url,view, callback, (这些是干啥的我暂时还没看),最后如果response有render方法,则执行template_response_middlerware的渲染方法并且执行response的render方法,详情可见下图:
然后执行回调函数start_response(status, response_headers),最后返回response:
学习技术交流群:226704167,愿和各位一起进步!
阅读全文
0 0
- django源码解析一(请求处理流程)
- [Django架构流程分析]请求处理机制其二:Django中间件的解析
- Beego源码解析-(三)-HTTP请求处理流程
- [Django架构流程分析]Django HTTP请求的处理流程
- Django HTTP请求的处理流程
- Django处理http请求流程剖析
- Django HTTP请求的处理流程
- Django HTTP请求的处理流程
- [Django架构流程分析]请求处理机制其三:view层与模板解析
- Volley源码解析(三)网络请求流程
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- Struts2请求处理流程及源码分析
- java 操作sftp
- mysql备份数据库批处理保存为备份时间的.sql文件
- POJ-3468--A Simple Problem with Integers--线段树
- Havel_Hakimi定理模板 可图化判断
- [bzoj4811] [Ynoi2017]由乃的OJ
- django源码解析一(请求处理流程)
- 最新 Spring 4.2.2 集成 Quartz Scheduler 2.2.2 任务调度示例
- android netd的工作流程解析
- OPNET网络仿真分析-1.2、OPNET安装教程
- NiceChord好和弦——和弦符号全解
- linux 常见的指令
- 招行银行卡开通google visa验证功能
- ASP.NET 写Json、Json转List
- 使用fiddler对移动端的前端请求故障、性能诊断