一、中间件概述
概述:一个轻量级、底层的插件,可以介入Django的请求和相应
本质:一个python类
方法:
①__init__:不需要传参数,服务器响应第一个请求的时候自动调用,用于确定是否启用该中间键
②process_request(self,request):在执行视图之前被调用(分配url匹配视图之前),每个请求都会调用,返回None或者HttPResponse对象(可以用于反爬虫,封IP)
③process_view(self,request,view_func,view_args,view_kwargs):调用视图之前执行,每个请求都会调用,返回None或者HttPResponse对象
④process_template_response(self,request,response):在视图刚好执行完后调用,每个请求都会调用,返回None或者HttPResponse对象;使用render
⑤process_response:所有相应返回浏览器之前调用,每个请求都会调用,返回HttPResponse对象
⑥process_exception(self,request,exception):当视图抛出异常时会调用,返回HttPResponse对象
执行位置图解:
二、中间件实例
1.创建中间件文件
在根目录下创建MiddleWare文件夹,文件夹内创建myApp文件夹
在此目录下创建myMiddle.py文件
如图:
在里面自定义类
from django.utils.deprecation import MiddlewareMixin #现在所有的中间键都要继承这个 class MyMiddle(MiddlewareMixin): def process_request(self,request): print('get参数为:',request.GET.get('a'))
2. 使用自定义中间件
配置setting.py文件
在MIDDLEWARE中添加路径'MiddleWare.myApp.myMiddle.MyMiddle'