中间件:
浏览器像django发起请求的时候,请求先经过url,可以在url之前挂一个中间件,可在到view中也可以挂一个中间件,当django给浏览器返回数据的时候,我们也可以在其过程中挂一个中间件,不光这三个地方可以挂中间件。
process_exception(self,request,ecxeption),这个是当视图函数中出错的时候,这个中间件会捕捉
当中间件从视图函数出来之后,中间件的执行顺序从下到上进行执行就是谁的中间件后注册,谁就先执行
中间件必须继承from django.utils.deprecation import MiddlewareMixin这个类
class Mymw(MiddlewareMixin):
def process_request(self,request):
print("Mymw process_request do --")
def process_view(self,request,callback,callback_args,callback_kwargs):
#callback:当前请求对应的视图函数
#callback_args:函数对应的位置传参
#callback_kwargs:对应的关键字传参
print("Mymw process_views do--")
#这个是从视图函数出来响应的时候出来返回的
def process_response(self,request,response):
print("Mymw process_response do--")
return response
settings中找MIDDLEWARE,添加’middleware.mymiddleware.Mymw’,这个就是这个中间件的路径