如何在Django中更新cookie

mis*_*aba 9 django cookies

在其他语言中,它很容易更新,例如cookie中的过期日期,但我不能为我的生活弄清楚如何在Django中做到这一点!

更新过期日期而不是设置新cookie的原因是我不必在每个页面上进行数据库调用.

编辑:感谢所有的答案,但似乎是我想要完成的一些混乱,所以我会尝试更精确: 设置或获取cookie不是问题.我想知道的是如何更新已设置的cookie.很抱歉对于这个误会!

Thi*_*Lam 14

在某些时候,对于新用户,您应该设置cookie.Cookie到期时间通常是每个用户的情况.在Django中,您可以使用以下代码设置cookie年龄:

response = redirect('somewhere') # replace redirect with HttpResponse or render
response.set_cookie('cookie_name', 'cookie_value', max_age=1000)
Run Code Online (Sandbox Code Playgroud)

上述cookie将在用户的浏览器中在1000秒后过期.

还有一个expires属性,您可以在其中指定过期日期.

参考:https://docs.djangoproject.com/en/2.0/ref/request-response/#django.http.HttpResponse.set_cookie

编辑

从django源代码中,尝试以下操作:

response = redirect('somewhere') # replace redirect with HttpResponse or render
response.cookies['cookie_name']['expires'] = datetime.today() + timedelta(days=1)
Run Code Online (Sandbox Code Playgroud)

从今天起1天后过期.