【Django】Django 读写 Cookie

Posted by 西维蜀黍 on 2019-10-20, Last Modified on 2021-09-21

获取 Cookie

request.COOKIES[key]
request.COOKIES.get(key)
# 普通cookie是明文传输的,可以直接在客户端直接打开,所以需要加盐,解盐之后才能查看
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)

参数:

  • default: 默认值
  • salt: 加密盐
  • max_age: 后台控制过期时间

设置 cookie

在对象返回给客户端之前,设置 cookie

response = redirect('/page/')
response.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=None, httponly=False)
response.set_signed_cookie(key,value,salt='加密盐',...)

参数:

  • key:键
  • value="":值
  • max_age=None:cookie 的生命长度,默认为 None,浏览器关闭 cookie 立即失效
  • expires=None:cookie 过期时间时间点,默认为 None,浏览器关闭 cookie 立即失效
  • path=’/’:Cookie 生效的路径,/ 表示根路径。根路径的 cookie 可以被任何 url 的页面访问
  • domain=None:默认值为 None,设置该 Cookie 的网页所在的域名 None
  • secure=False:用来设置 Cookie 只在确保安全的请求中才会发送。当请求是 HTTPS 或者其他安全协议时,包含 secure 选项的 Cookie 才能被保存到浏览器或者发送至服务器。
  • httponly=False:为 True 时,只能在 HTTP 协议中传输,无法通过 JavaScript 获取

Reference