1、获取Cookie
客户端浏览器上的一个文件
request.COOKIES['key']
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)
参数:
default: 默认值
salt: 加密盐
max_age: 后台控制过期时间
2、设置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保存在客户端的电脑上,所以,JavaScript和jquery也可以操作cookie。
下载:http://plugins.jquery.com/cookie/
<script src='/static/js/jquery.cookie.js'></script>
$.cookie("list_pager_num", 30,{
path: '/' ,
expires:7,
domain:None,
});
3、示例
# request.COOKIES
# request.COOKIES['username111']
request.COOKIES.get('username111')
response = render(request,'index.html')
#response = redirect('/index/')
# 设置cookie,关闭浏览器失效
response.set_cookie('key',"value")
# 设置cookie, N秒只有失效
response.set_cookie('username111',"value",max_age=10)
# 设置cookie, 截止时间失效
import datetime
current_date = datetime.datetime.utcnow()
current_date = current_date + datetime.timedelta(seconds=5)
response.set_cookie('username111',"value",expires=current_date)
response.set_cookie('username111',"value",max_age=10)
# request.COOKIES.get('...')
# response.set_cookie(...)
obj = HttpResponse('s')
obj.set_signed_cookie('username',"kangbazi",salt="asdfasdf")
request.get_signed_cookie('username',salt="asdfasdf")