Django | 操作cookie
获取Cookie
request.COOKIES['key']
request.COOKIES.get['key']
request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None)(签名cookie,在设置时进行了签名加密)
"""
参数:
default: 默认值
salt: 加密盐
max_age: 后台控制过期时间
"""
设置Cookie
rep = HttpResponse(...)
rep = render(request, ...)
rep = redirect( ...)
rep.set_cookie(key,value,...)
rep.set_signed_cookie(key,value,salt='加密盐', max_age=None, ...)(签名cookie)
return rep
"""
参数:
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
def logout(request):
rep = redirect("/login/")
rep.delete_cookie("user") # 删除用户浏览器上之前设置的usercookie值
return rep
cookie设置参数
class HttpResponseBase:
def set_cookie(
self,
key, # 键
value='', # 值
max_age=None, # 超长时间, 有效事件
# max_age = 20, 意思是这个cookie20秒后就消失了,默认时长是2周, 这个是以秒为单位的
# cookie需要延续的时间(以秒为单位) 如果参数是\ None `` ,这个cookie会延续到浏览器关闭为止。
expires=None, # 超长时间,值是一个datetime类型的时间日期对象,到这个日期就失效的意思,用的不多
# expires默认None, cookie失效的实际日期 / 时间。
path='/', # Cookie生效的路径,就是访问哪个路径可以得到cookie,'/'是所有路径都能获得cookie
# 浏览器只会把cookie回传给带有该路径的页面,这样可以避免将cookie传给站点中的其他的应用。
# / 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问
domain=None, # Cookie生效的域名你可用这个参数来构造一个跨站cookie。如, domain = ".example.com"
# 所构造的cookie对下面这些站点都是可读的:www.example.com 、 www2.example.com和.other.sub.domain.example.com 。
# 如果该参数设置为None ,cookie只能由设置它的站点读取。
secure=False, # 如果设置为True ,浏览器将通过HTTPS来回传cookie。
httponly=False, # 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)
):
pass
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!