码迷,mamicode.com
首页 > 其他好文 > 详细

Django中Cookie 和 Session

时间:2018-01-25 21:46:11      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:end   覆盖   src   ida   user   浏览器   pat   lap   参数   

Django中操作Cookie

 Cookie 就是保存在浏览器端的键值对   

  1. 服务端可以在浏览器上设置COOKIE 保存在浏览器上的
  2. 每次请求会携带COOKIE
  3. Cookie是有效时间的
  4. 可以用来做登录或其他事情

获取Cookie

request.COOKIES[‘key‘]
request.get_signed_cookie(key, default=RAISE_ERROR, salt=‘‘, max_age=None)

参数:

  • default: 默认值
  • salt: 加密盐
  • max_age: 后台控制过期时间

设置Cookie

rep = HttpResponse(...)
rep = render(request, ...)

rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt=‘加密盐‘,...)

参数:

  • key, 键
  • value=‘‘, 值
  • max_age=None, 超时时间
  • expires=None, 超时时间(IE requires expires, so set it if hasn‘t been already.)
  • path=‘/‘, Cookie生效的路径,/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问
  • domain=None, Cookie生效的域名
  • secure=False, https传输
  • httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

删除Cookie

def logout(request):
    rep = redirect("/login/")
    rep.delete_cookie("user")  # 删除用户浏览器上之前设置的usercookie值
    return rep

Cookie版登陆校验

技术分享图片
# 登录
def login(request):
    if request.method=="POST":
        name=request.POST.get("name")
        pwd=request.POST.get("pwd")
        if name=="cao" and pwd=="123":

            rep=redirect("/index1/")
            # rep.set_cookie("name",name)
            # 加盐
            # rep.set_signed_cookie("name",name ,salt="nidaye
            # 设置时间,时间一到自动跳转到登录页面
            # rep.set_signed_cookie("name",name,salt="nidaye",max_age=10)
            #path=‘/‘, Cookie生效的路径,/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问
            rep.set_signed_cookie("name1", name, salt="nidaye", max_age=100,path="/index1/")
            return rep

    return render(request,"login.html")


def index1(request):
    
    # name=request.COOKIES.get("name")
    # 加盐的
    # name=request.get_signed_cookie("name",None,salt="nidaye")

    # 时间一到,name取不到值则跳转到登录页面
    name = request.get_signed_cookie("name1", None, salt="nidaye")
    # 如果取不到name则自动跳转到登录页面
    if not name:
        return redirect("/login/")
    return render(request,"index1.html",{"name":name})


def index2(request):

    name = request.get_signed_cookie("name1", None, salt="nidaye")
    if not name:
        return redirect("/login/")
    return render(request,"index2.html",{"name":name})
登录校验

 

 

 

hhhhhh

Django中Cookie 和 Session

标签:end   覆盖   src   ida   user   浏览器   pat   lap   参数   

原文地址:https://www.cnblogs.com/caochao-/p/8353041.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!