cookie
cookie由来
http协议是无状态的,对于服务器来说,每一次请求都是全新的,有点人生若只如初见的感觉,cookie英文原意是曲奇饼干,但浏览器中的cookie,仅仅是继承了曲奇饼干小巧玲珑的特征,是指浏览器发送到浏览器上的一组键值对,这一小段信息,用来保存访问状态。
django中操作cookie
一个登陆实例
def cookieLogin(request):
print("这是cookieLogin")
error_msg=''
if request.method=='POST':
email=request.POST['email']
pwd=request.POST['pwd']
mian=request.POST.get('mian')
print(mian)
print(email,pwd)
is_ok=UserInfo.objects.filter(email=email,password=pwd)
print(is_ok)
res={
'code':0}
if is_ok:
#登陆成功 判断求return_url
next_url=request.GET.get('return_url','/Base/')
print('动态跳转'+next_url)
rep=redirect(next_url)
# res['next_url']='/Base/'
# return JsonResponse(res)
# rep=redirect('/Base/')
if mian:
print("免登陆7天")
# rep.set_cookie('h1','dsb1',max_age=int(mian)*24*60*60)#七天免登陆
rep.set_signed_cookie('h1','dsb1',salt='lhj',max_age=int(mian)*24*60*60)#七天免登陆
else:
rep.set_signed_cookie('h1','dsb1',salt='lhj', max_age=60)
# rep.delete_cookie('h1')
print("#"*120)
return rep
# return HttpResponse(json.dumps(res))
# return redirect('/index/')
else:
res['code']=1
res['err_msg']='用户名或密码错误'
return JsonResponse(res)
# return HttpResponse(json.dumps(res))
# return HttpResponse('用户名或密码错误')
return render(request, "cookieLogin.html",{
'error_msg':error_msg})
获取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,