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

cookie和session

时间:2018-04-24 17:30:06      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:cookies   read   efault   set   pre   max   session   red   inf   

cookie是保存在客户端(浏览器)的数据

1.获取cookie

request.COOKIES.get(‘key‘)  get形式

request.COOKIES[‘key‘]  字典形式

request.get_signed_cookie(‘key‘,salt=‘sdasdas‘)    加密形式  salt为加密盐

def cook1(request):
    #获取当前已经登录的用户

    v=request.COOKIES.get(username_cookie)   # 获取cookie
 #或者 v=request.COOKIES[‘username_cookie‘]  # 获取cookie
    try:
        v=request.get_signed_cookie(username_cookie,default=RAISE_ERROR,salt=sdasdas)   #获取加密cookie

        print(v)
        if not v:
            return redirect(/xiaoqing/cookie)


        else:
            return render(request,cookie1.html,{current_user:v,})

    except Exception as e:
        return redirect(/xiaoqing/cookie)

 参数:default: 默认值

           salt: 加密盐

           max_age: 后台控制过期时间

2.设置cookie

def cook(request):

    err_msg=""
    if request.method == "GET":
        return render(request,cookie.html)

    if request.method == "POST":

        username = request.POST.get(username)
        p = request.POST.get(password)

        dic = user_info.get(username)
        print(dic)

        if not dic:
            err_msg="用户不存在"
            return render(request,cookie.html,{err_msg:err_msg})

        if dic[pwd] == int(p):

            res = redirect(/xiaoqing/cookie1)
            # res.set_cookie(‘username_cookie‘,username)   #设置cookie   关闭浏览器失效
            # res.set_cookie(‘username_cookie‘,username,max_age=10)   设置cookie失效时间 10秒过期
            import datetime
            current_date=datetime.datetime.utcnow()
            change_date=current_date+datetime.timedelta(seconds=5)
            res.set_cookie(username_cookie,username,expires=change_date)   #到哪个时间失效

            # res.set_signed_cookie(‘username_cookie‘,username,salt=‘sdasdas‘)

            return res
        else:
            return render(request,cookie.html)
ret = HttpResponse(...) 或 ret = render(request, ...)
res.set_signed_cookie(‘username_cookie‘,username,salt=‘sdasdas‘)  #设置加密cookie
ret.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保存在客户端的电脑上,所以,JavaScript和jquery也可以操作cookie。 


cookie和session

标签:cookies   read   efault   set   pre   max   session   red   inf   

原文地址:https://www.cnblogs.com/sunhao96/p/8931177.html

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