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'
]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值