Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。
中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。
我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。
中间件的原理其实就是定义了一个装饰器,但是这个装饰器可以对整个项目中的所有方法进行装饰;
我们可以通过中间件,对请求对象和响应对象进行相应的干预操作。
实现中间件的流程:
1.在子应用中编写一个middleware.py的文件
def my_middleware(get_response): print('中间件初始化') def middlewraer(request, *args, **kwargs): print('在执行执行前对请求进行干预') # 加入干预代码, 主要应用白名单黑名单 if request.META['USER'] == 'KG': return HttpResponse('该用户无法访问') ret = get_response(request, *args,**kwargs) print('在执行后对响应进行干预') return ret return middlewrae
2. 在setting文件中注册中间件
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.