一、什么是中间插件
我理解的中间插件就是过滤器的一起,所有的请求,先到中间插件过滤,过滤后进行url匹配,到对应的view方法,response返回给中间插件,中间插件蹭蹭层层返回给用户。根据这个描述我们可以画个图

二、如何配置中间件
创建一个文件目录

导入中间件文件目录

通过代码验证猜想
- 知识点
from django.utils.deprecation import MiddlewareMixin
继承类 - 接受请求的方法名
process_request()
- 返回响应的方法名
process_response()
- 参数reuqest等同于view中的request
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse
class test1(MiddlewareMixin):
def process_request(self,request):
print("1号请求")
def process_response(self,request,response):
print("1号响应")
return response
class test2(MiddlewareMixin):
def process_request(self, request):
print("2号请求")
def process_response(self, request, response):
print("2号响应")
return response
打印结果,其中我在view层加了一个print输出
1号请求
2号请求
view响应
2号响应
1号响应
当中间插件过滤到问题时,返回的机制当在过滤器中遇到了不会合格的,不会经过view层只会直接返回,如图

代码如下:
from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse
class test1(MiddlewareMixin):
def process_request(self,request):
print("1号请求")
#拦截
return HttpResponse("ok")
def process_response(self,request,response):
print("1号响应")
return response
class test2(MiddlewareMixin):
def process_request(self, request):
print("2号请求")
def process_response(self, request, response):
print("2号响应")
return response
网友评论