在其他语言中,它很容易更新,例如cookie中的过期日期,但我终生无法弄清楚如何在Django中做到这一点!
更新过期日期而不是设置新cookie的原因是我不必在每个页面上进行数据库调用。
编辑: 感谢所有的答案,但似乎对我想要完成的事情有些困惑,所以我会尝试更精确: 设置或获取Cookie不是问题。我想知道的是如何更新已设置的cookie 。 对不起,误会了!
答案 0 :(得分:14)
在某些时候,对于新用户,您应该设置cookie。 Cookie到期时间通常是每个用户的情况。在Django中,您可以使用以下代码设置cookie年龄:
response = redirect('somewhere') # replace redirect with HttpResponse or render
response.set_cookie('cookie_name', 'cookie_value', max_age=1000)
上述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)
从今天起过去1天。
答案 1 :(得分:3)
答案 2 :(得分:0)
三种方式: 1)
response = render_to_response(template_name, {'data':'data'})
response.set_cookie("cookie_name","test_value")
return response
2Midellware:http://justcramer.com/2007/12/20/set-cookies-without-a-response-in-django/
3)模板中的javascript