Django中间件(强制登录)

中间件(Middleware)用于在http请求到达 视图函数之前 和 视图函数return之后 ,django会根据自己的规则在
合适的时机执行中间件中相应的方法。
常用作view中冗余功能的抽取,如每个页面(或某些页面)在访问前强制登录。

强制登录实例

  1. 定义中间件(可以新建一个包)
    中间件中常用的两个过程:process_request , process_response
class MyMiddleAware2(MiddlewareMixin):
    #如果验证成功,则什么一个不用做,否则返回HttpResponse即可响应请求(中断)
    def process_request(self,request):#强制登录判断
        if "login" not in request.path:#路径中如果没有"login"
            print("登录验证")
            session = request.session #获取session
            if session.get("login"): #判断是否有登录的标记
                print("已登录")
            else:
                print("未登录")
                return render(request,"login.html") #未登录则,跳转登录页面
        else:
            print("正在登录") #如果路径中"login"则是登录动作本身
    def process_response(self,request,response):
        print("response:",request,response)
        return response #持续返回响应

  1. 激活中间件(导入第一步中中间件类的路径)
    每当有请求发生时,所有中间件都会执行自己的生命周期。
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    ....
    'middleware115.middlewares.MyMiddleware2',# 注册自定义中间件,尽量放在最后注册
]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值