""" 这是登录鉴权的中间件程序,其实就是一个类 process_request是进入中间件 process_response是离开中间件程序 用于判断是否登录系统,request.session.get('info'),session变量在views/account.py中定义 """ # 导入模块 from django.utils.deprecation import MiddlewareMixin from django.shortcuts import render, redirect class AuthMiddleWare(MiddlewareMixin): """ 中间件 """ def process_request(self, request): # print('M1.process_request,进来了') # (重要)排除不需要进行登录验证的页面,例如登录界面,不然回造成死循环 # request.path_info 当前页面的URL,例如:'/login/' if request.path_info in ['/login/', '/image/code/']: return # 返回None # 判断是否已登录,返回None则继续向下一个中间件执行,最终到达视图函数 info = request.session.get('info') # print(info) if info: return # 返回None # 没有登录,则返回登录界面 return redirect('/login/') def process_response(self, request, response): # print('M1.process_request,走了') return response