Django Cookies,我该如何设置它们?
我有一个网站,根据访问者选择的位置显示不同的内容。 例如:用户输入55812作为zip。 我知道什么城市和地区经纬度。 那就是给他们他们关于那个领域的内容。 我的问题是,我如何将它存储在cookie中,以便当它们返回时不需要始终输入邮政编码?
我看到它如下:
我似乎无法找到关于设置cookie的任何可靠信息。 任何帮助是极大的赞赏。
这是设置持久cookie的帮手:
import datetime
def set_cookie(response, key, value, days_expire = 7):
if days_expire is None:
max_age = 365 * 24 * 60 * 60 #one year
else:
max_age = days_expire * 24 * 60 * 60
expires = datetime.datetime.strftime(datetime.datetime.utcnow() + datetime.timedelta(seconds=max_age), "%a, %d-%b-%Y %H:%M:%S GMT")
response.set_cookie(key, value, max_age=max_age, expires=expires, domain=settings.SESSION_COOKIE_DOMAIN, secure=settings.SESSION_COOKIE_SECURE or None)
在发送回复之前使用以下代码。
def view(request):
response = HttpResponse("hello")
set_cookie(response, 'name', 'jujule')
return response
更新 :检查@Peter答案下面的内置解决方案:https://stackoverflow.com/a/5575578/174027
使用Django的会话框架应该覆盖大多数场景,但是Django现在也可以在请求和响应对象上提供直接的cookie操作方法(所以你不需要辅助函数)。
设置一个cookie:
def view(request):
response = HttpResponse('blah')
response.set_cookie('cookie_name', 'cookie_value')
检索cookie:
def view(request):
if 'cookie_name' in request.COOKIES:
value = request.COOKIES['cookie_name']
您可以手动设置cookie,但根据您的使用情况(如果您以后可能想要添加更多类型的持久性/会话数据),使用Django的会话功能可能更有意义。 这将让你获取并设置内部绑定到用户会话cookie的变量。 关于这一点很酷的事情是,如果你想存储大量与用户会话相关的数据,那么将所有数据存储在cookie中会为HTTP请求和响应增加许多权重。 在会话中,会话cookie是所有来回发送的(尽管在Django的存储会话数据时需要考虑开销)。
链接地址: http://www.djcxy.com/p/57807.html上一篇: Django Cookies, how can I set them?
下一篇: ASP.NET cookie expiration time is always 1/1/0001 12:00 AM