Django的请求生命周期与中间件中的5中方法
请求生命周期:
客户端——>WSGI——> 中间件——>路由匹配——>视图函数——>WSGI——>客户端
中间件:
在全局层明处理请求和响应的
form django.utils. deprecation import MiddlaraMixin
5种方法与4个要点:执行顺序,执行时间,参数,返回值
方法:
process_request
process_views
process_exception
process_response
process_template_response
process_request(self,request)
参数:request
返回值:
None:正常流程,继续执行下一个中间件的process_request(按照中间件的注册顺序);
HttpResponse对象:下面中间件的方法不再执行,直接执行当前中间件的process_response方法,然后倒叙向上执行同一个方法;
执行顺序:按中间件注册顺序,顺序执行
执行时间:WSGI之后,路由匹配之前;
process_view(self,request,func_name,callback_args,callback_kwargs)
参数:request,func_name,callback_args,callback_kwargs
返回值:
None:正常流程
HttpResponse对象: 下面中间件的同方法不执行,视图函数也不执行,直接执行最后一个中间件的process_response方法,倒序向上执行此方法;
执行顺序:按照中间件注册顺序,顺序执行
执行时间:视图函数之前,路由匹配之后,
process_response(self,request,response)
参数:request,
response 返回给浏览器的响应对象
返回值:
None:正常流程
HttpResponse对象: 正常流程,继续执行中间件的同方法,必须返回的
执行顺序:按照中间件注册顺序,倒叙序执行
执行时间:视图函数之后,进入WSGI之前
process_exception(self,request,exception)
#处理视图层明的异常
参数:request,
exception:视图发生的错误对象
返回值:
None:交个下一个中间件处理,最后交个django处理
HttpResponse对象:执行最后一个中间件的process_response方法,倒叙向上执行
执行顺序:按照中间件注册顺序,倒叙序执行
执行时间(触发条件):视图函数发生错误之后,被调用,
process_template_response(self,request,response)
return response
参数:request,
response:返回的响应对象
返回值:
HttpResponse对象:必须返回,倒叙向上执行
执行顺序:按照中间件注册顺序,倒叙序执行
执行时间(触发条件):视图函数返回TemplateResponse对象或Response对象有render方法

Django的请求生命周期与中间件中的5中方法的更多相关文章
- Django组件 - Django请求生命周期、中间件
一.Django请求生命周期 在学习中间件之前,先了解一下Django的请求生命周期,如下图: 1)client代表浏览器,浏览器内部为我们封装了socket,Django的WSGI模块也封装了soc ...
- Django组件---Django请求生命周期和中间件
Django组件---Django请求生命周期和中间件 Django请求生命周期 说明: client代表浏览器,浏览器的内部为我们封装了socket,Django的WSGI模块也为我们封装了sock ...
- Django 框架 django的请求生命周期
概述 首先我们知道HTTP请求及服务端响应中传输的所有数据都是字符串,同时http请求是无状态的,可以通过session和cookie来辅助. 浏览器通过ip和端口及路由方式访问服务端. 在Djang ...
- Django的请求生命周期
Django的请求生命周期 请求生命周期 请求生命周期是指当用户在浏览器上输入url到用户看到网页的这个时间段内,Django后台所发生的事情. 1.客户端发送Http请求 2 .服务器接收,根据请求 ...
- DRF框架(一)——restful接口规范、基于规范下使用原生django接口查询和增加、原生Django CBV请求生命周期源码分析、drf请求生命周期源码分析、请求模块request、渲染模块render
DRF框架 全称:django-rest framework 知识点 1.接口:什么是接口.restful接口规范 2.CBV生命周期源码 - 基于restful规范下的CBV接口 3.请求组件 ...
- Django框架请求生命周期
先看一张图吧! 1.请求生命周期 - wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架(Flask.Django) - 中间件,帮助我们对请求进行校 ...
- 【转】Django框架请求生命周期
https://www.cnblogs.com/gaoya666/p/9100626.html 先看一张图吧! 1.请求生命周期 - wsgi, 他就是socket服务端,用于接收用户请求并将请求进行 ...
- Django之请求生命周期
settings.py中间件执行 自定义中间件的配置: (1)任意新建一个py文件,导入模块from django.utils.deprecation import MiddlewareMixin ( ...
- Django Http请求生命周期
day54 请求响应Http 1.发送Http请求 2.服务器接收,根据请求头中的的url在路由关系表中进行匹配(从上到下) 3.匹配成功后,执行指定的views函数 4.业务处理 URL----&g ...
随机推荐
- php 转化整型需要注意的地方
public function tt(){ $num = '19.90'; echo $num; echo '<br/>--------------<br/>'; echo 1 ...
- Ubuntu+Django+uWSGI+Nginx部署Django项目
安装uWSGI,pip依据自己要使用的python版本自行选择,python2.x版本使用pip进行安装,python3.x版本使用pip3进行安装 pip install uwsgi 配置uWSGI ...
- 极客时间-左耳听风-程序员攻略-Java底层知识
Java 字节码相关 字节码编程,也就是动态修改或是动态生成 Java 字节码.Java 的字节码相当于汇编,其中的一些细节. Java Zone: Introduction to Java Byte ...
- onethink多图上传
模板处理, 可以参考 checkbox 的. 注:edit 方法的 基本一样,需要先把已有的数据展示出来,绑定双击事件,删除图片 需要先绑定给已经展示出来的图片, uploadPicture 的cal ...
- edusoho 查找网址对应的控制器和模板页面
刚接触这套系统的新手都在纠结模板在哪个文件里,有时候就算告诉他,遇到其他同样的模板照样还问,授人以鱼不如授人以渔!这个文章记录下我自己的看法,大爪子忽喷! 刚看到群里有人问 xxx.com/admin ...
- 日期控件传到后台异常。日期数据格式是 Date 还是 String?
问题:日期控件的时间,传到Controller层直接异常. 前台日期格式:YYYY/MM/DD,后台Java定义的时间类型:Date. 解决: 方法一:原因是Controller层的参数类型定义为 D ...
- POJ 1734:Sightseeing trip
Sightseeing trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Special Judge ...
- 输出重定向之python2和python3的区别
python语句支持输出重定向到文件里,与shell类似使用“>>”来重定向输出. python2: logfile = open('mylog.txt', 'a') print > ...
- centos7ping www.baidu.com没有ping通
在linux中ping www.baidu.com 无法ping通,可能原因是DNS没配置好 1.修改vi /etc/resolv.conf 增加如下内容: nameserver 114.114.11 ...
- SpreadJS:一款高度类似Excel的开发工具,功能涵盖Excel的 95% 以上
Excel 作为一款深受用户喜爱的电子表格工具,借助其直观的界面.出色的计算性能.数据分析和图表,已经成为数据统计领域不可或缺的软件之一. 基于Excel对数据处理与分析的卓越表现,把Excel的功能 ...