Django中间件

一.Django中间件

中间件类似于门卫,在数据进入和离开的时候都需要经过中间件处理。

二.中间件五个方法


from django.http import HttpResponseRedirect
from django.utils.deprecation import MiddlewareMixin

class AuthMiddleware(MiddlewareMixin):
    # 1.请求进入中间件后,运行第一个方法
    def process_request(self,request):
        # 返回HttpResponse|None
        pass
    # 2.执行完process_request,就会执行process_view,func为视图函数,
    # 所以func(request)就相当于执行了视图函数
    def process_view(self,request,func,*args,**kwargs):
        print('process_view')
        response = func(request)
        return response
    # 3.如果返回的Response是渲染后的模板,对调用process_template_response方法
    def process_template_response(self,request,response):
        return response
    # 4.如果返回的Response是非模板渲染的结果,会调用process_response
    def process_response(self,request,response):
        return response
    # 5.当调用视图函数出现异常或返回Response异常,调用的函数
    def process_exception(self,request,exception):
        return HttpResponse('error')

三.在settings中注册中间件

在这里插入图片描述

四.用中间件判断请求接口是否登录


def process_request(self, request):
        print(f'hahahah{request}')
        if request.path != '/login':
            if request.session.get('username',None):
                pass
            else:
                return HttpResponseRedirect("/login")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值