django cookie 提供的功能 参数

 

 

# 用户发来数据带来所有COOKIES 这个cookie是字典
request.COOKIES

# 获取字典 获取cookie
request.COOKIES["username111"]
# get方法获取字典 cookie
request.COOKIES.get("username111")


服务器端可以给用户写cookie 设置cookie
# 设置cookie
    response = render(request,"index.html")
    response = redirect("/index/")
    # 返回用户cookie
    # set_cookie()第一个值是key 第二个值是value
    # 给用户设置cookie也是key 和value
    response.set_cookie("key","value")
    return response


用户登录,登录成功之后只要不关闭浏览器,cookie一直生效。后台重启,cookie一直存在

设置cookie时 后面不加任何参数,表示关闭浏览器时候,cookie就失效了,再打开浏览器就要重新登录了

rep = HttpResponse(...) 或 rep = render(request, ...)
 
rep.set_cookie(key,value,...)

参数:
        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获取(不是绝对,底层抓包可以获取到也可以被覆盖)

max_age 设置cookie超时时间 , 例如 max_age=10 10秒后cookie过期  登录状态只能保存10秒

# 设置cookie
    response = render(request,"index.html")
    response = redirect("/index/")
    # 返回用户cookie
    # set_cookie()第一个值是key 第二个值是value
    # 给用户设置cookie也是key 和value

    # 设置cookie,关闭浏览器是失效
    response.set_cookie("key","value")

    #设置cookie 超时时间,N秒之后失效
    response.set_cookie("key", "value",max_age=1000)
    return response


expires 也是超时时间,区别是max_age以秒为单位,expires是用datetime实现 超时时间
导入datetime模块

设置5秒超时时间
 # 利用datetime1的超时时间,到哪个时间节点过期
    import datetime
    # datetime.datetime.utcnow() 获取当前时间
    current_date = datetime.datetime.utcnow()
    # 设置了 时间差 设置这个时间是5秒过期
    current_date = current_date + datetime.timedelta(seconds=5)
    response.set_cookie("key", "value", current_date)

    return response

所以设置cookie超时时间 两张方法 expires,max_age


path='/' 生效路径 设置cookie默认是'/' 代表允许网站任何url 都可以访问cookie
如果设置path='/index/' cookie只能index页面使用,其他url页面不能使用cookie

domain=none 设置生效cookie的域名 只能是2级域名
 
 
posted @ 2018-12-18 13:00  minger_lcm  阅读(448)  评论(0编辑  收藏  举报