标签: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。
标签:cookies read efault set pre max session red inf
原文地址:https://www.cnblogs.com/sunhao96/p/8931177.html