Django之中间件使用

这是Django1.11.7版本的使用方法

 # 继承框架中间件  
 from django.shortcuts import redirect 
 from django.utils.deprecation import MiddlewareMixin
#需要登录才能进入的页面路径
LOGIN_REQUIRE_PATHS=[
        '/app/mine/',
        '/app/goods/',
    ]
class MyappMiddleware(MiddlewareMixin):
# 下钩子于所有路由被交给路由表之前
   def process_request(self,request):
      path=request.path
      usession=request.session.get('uname',None)
      if path in LOGIN_REQUIRE_PATHS and not usession:
          return redirect(reverse('app:login'))
# 下钩子于所有路由请求被交给视图函数之前
def process_view(self, request, view_func, view_args, view_kwargs):
    pass
# 理论上下钩子于所有路由请求的模板被渲染完成以后,实测无法回调      
def process_template_response(self, request, response):
    pass
# 下钩子于所有路由的响应被返回之前
def process_response(self, request, response):
    pass
 # 统一处理所有异常,当前任何异常都重返主页     
 def process_exception(self, request, exception):  
      return redirect('/')

最后在settings中注册中间件

MIDDLEWARE = [
    #文件夹名.文件名.类名
    'MyMiddleWare.myMiddleWare.MyAppMiddleWare'
]

猜你喜欢

转载自blog.csdn.net/qq_42055440/article/details/82110032