美文网首页
Django中间件(强制登录)

Django中间件(强制登录)

作者: 一纸繁鸢w | 来源:发表于2019-01-04 13:25 被阅读0次

    中间件(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',# 注册自定义中间件,尽量放在最后注册
    ]
    
    

    相关文章

      网友评论

          本文标题:Django中间件(强制登录)

          本文链接:https://www.haomeiwen.com/subject/ebvhrqtx.html