• Django基于Cookie装饰器实现用户认证


    def login(request):
        if request.method =="GET":
            return render(request,"login.html")
        elif request.method == "POST":
            u = request.POST.get("user")
            p = request.POST.get("password")
            print(u,p)
            if u ==user and p ==pwd:
                res = redirect("/index")
                res.set_cookie('user',u,max_age=5)   #设置cookie,关闭浏览器cookie失效。max_age=5表示5秒后cookie失效,需要重新登录
                return res
            else:
                return  render(request,"login.html")
    def index(request):
        v = request.COOKIES.get("user")
        if v:
            return render(request,"index.html",{"current_user":v})
        else:
            return redirect("/login")
    
    
    
    二, 基于装饰器实现用户认证
    FBV:
    
    def auth(func):
        def inner(reqeust,*args,**kwargs):
        v = reqeust.COOKIES.get('user')
        if not v:
          return redirect('/login')
        return func(reqeust, *args,**kwargs)
      return inner
    
    def login(request):
      if request.method =="GET":
        return render(request,"login.html")
      elif request.method == "POST":
        u = request.POST.get("user")
        p = request.POST.get("password")
        if u ==user and p ==pwd:
          res = redirect("/index")
          res.set_cookie('user',u,max_age=5)   #设置cookie,关闭浏览器cookie失效。max_age=5表示5秒后cookie失效,需要重新登录
             return res
        else:
          return  render(request,"login.html")
    @auth
    def index(request):
      v = request.COOKIES.get("user")
      return render(request,"index.html",{"current_user":v})
      
  • 相关阅读:
    【转】用Linux命令行获取本机外网IP地址
    【转】5 Best Place to Learn Linux – Linux Tutorial Sites
    【转】linux shell 逻辑运算符、逻辑表达式详解
    ftp
    修改/创建计算机用户名、密码
    SCRIPT429: Automation 服务器不能创建对象
    Tomcat 加载外部dll时如何配置
    查看电脑MAC地址
    访问windows共享无法分配内存问题解决
    打包
  • 原文地址:https://www.cnblogs.com/ixiaosong/p/6955999.html
Copyright © 2020-2023  润新知