zoukankan      html  css  js  c++  java
  • 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})
      
  • 相关阅读:
    [原]80386中断表
    [原]elf可执行连接文件格式
    [原]nasm语法
    VLAN基础配置及Access接口
    配置hybird接口
    配置Trunk接口
    [导入]Oracle常用技巧和脚本
    [导入]ORACLE 常用的SQL语法和数据对象
    [导入]Oracle 基本知识
    [导入]Oracle特殊包
  • 原文地址:https://www.cnblogs.com/ixiaosong/p/6955999.html
Copyright © 2011-2022 走看看