中间件

发布时间 2023-06-01 15:08:36作者: 徐俊112

定义中间件

from django.utils.deprecation import MiddlewareMixin


class M1(MiddlewareMixin):
    ''' 中间件1 '''

    def process_request(self,request):
        print('M1进来了')

    def process_response(self,request,response):
        print('M1走了')
        return response

class M2(MiddlewareMixin):
    ''' 中间件1 '''

    def process_request(self,request):
        print('M2进来了')

    def process_response(self,request,response):
        print('M2走了')
        return response

应用中间件

需要在setting.py文件中注册中间件

中间件实现登录的校验:

from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse, redirect


class M1(MiddlewareMixin):
    ''' 中间件1 '''

    def process_request(self,request):

        # 排除特定的URL
        # request.path_info  # 获取用户当前请求的URL
        if request.path_info =='/account/login/':  # 如果请求的URL为登录的URl:/admin/login/,就继续往下走
            return

        # 读取当前访问的用户的session信息。能读取到,说明已经登录过,就可以继续往后走
        info_dict =request.session.get("info")
        if info_dict:
            return
        # 没有登录过
        return redirect('/account/login/')