zoukankan      html  css  js  c++  java
  • django 使用装饰器验证用户登陆

    使用装饰器验证用户登陆,需要使用@method_decorator

    首先需引用,method_decorator,并定义一个闭包

    from django.utils.decorators import method_decorator
    def checkLogin(func):
        def wrapper(request,*args,**kwargs):
            is_login=request.session.get('IS_LOGIN',False)
            if is_login:
                return func(request,*args,**kwargs)
            else:
                return  redirect('/Index/')
        return  wrapper

    登陆页面的定义如下例子:

    class Login(View):    
        def get(self,request):
            return render(request,'index.html')
        def post(self,request):
            username=request.POST.get('username')
            user_list=Hbuser.objects.filter(username=username).first()
            if user_list:
                request.session['IS_LOGIN']=True
                request.session['uname']=user_list.username
            else:
                request.session.flush()
                return redirect('/Index/')
            return  redirect('/Home/')

    装饰器的使用方法如下,下面是对整个类实用装饰器

    @method_decorator(checkLogin,name='dispatch')
    class Home(View):
        def get(self,request):
            return HttpResponse('OK')
  • 相关阅读:
    JAVA 桥接模式
    字模生成/提取原理
    const修饰指针
    BMP格式分析
    [转载]在.Net中使用SMTP发送邮件
    [转载]MD5加密解密
    四十二。java
    四十四。java
    四十一。复习第十二章内容
    三十六。文件流
  • 原文地址:https://www.cnblogs.com/weilaibuxiangshuo/p/10412124.html
Copyright © 2011-2022 走看看