day69-Django进阶-中间件

2020-03-12 15:11:47 浏览数 (1)

1.运作周期

自己做的,实在受不了了,太难受了自己做的,实在受不了了,太难受了

2.使用

from django.utils.deprecation import MiddlewareMixin # 指定py文件里面导入

3.具体描述

代码语言:javascript复制
参数 执行时间 执行顺序 返回值 
			
			
			1. process_request
				1. 执行时间	
					在视图函数执行之前
					
				2. 参数
					request  ——》 视图函数中用到的request
				3. 执行顺序
					按照注册顺序顺序执行
					
				4. 返回值
					None   正常流程走
					HttpResponse对象  
						当前中间件后面的中间件的process_request和process_response方法、视图函数都不执行
						执行当前中间的process_response方法以及之前的中间的process_response方法
						
			2. process_response
				1. 执行时间
					在视图函数执行之后
				2. 参数
					request  ——》 视图函数中用到的request
					response  —— 》视图函数中返回的response
					
					
				3. 返回值
					必须是response对象
					
				4. 执行顺序
					按照注册顺序倒叙执行
			3. process_view
				1. 执行时间
					在process_request之后,以及路由匹配之后,在视图函数执行之前
					
				2. 参数
					view_func     ——》 要执行的视图函数
					view_args     ——》 视图函数的位置参数
					view_kwargs   ——》 视图函数的关键字参数
					
				3. 返回值
					None  正常走
					
				4. 执行顺序
					按照注册顺序顺序执行
					
					
			4. process_exception(self, request, exception)
				1. 执行时间(触发条件:有异常才执行)
					在视图函数之后,在process_response之前
				2. 参数
					exception ——》 错误信息对象
				
				3. 返回值
					None  正常走
					HttpResponse对象  
						注册顺序之前的中间件的process_exception方法不走了。
						执行所有中间件的process_response方法
					
				4. 执行顺序
					按照注册顺序倒叙执行
			
				
			5. process_template_response
				1. 执行时间(触发条件:response对象要求有一个render方法)
				
					在视图函数之后,在process_response之前
					
				2. 参数
				
				3. 返回值
					返回response
				4. 执行顺序
					按照注册顺序倒叙执行
					
				

0 人点赞