5

我正在处理一个 Django 项目。无论用户登录还是注销,我都想让 UI 首选项保持不变。

所以饼干是我想的方式。所以我很困惑request.COOKIES 在 python 和document.cookieJS 中是否是同一件事。我的意思是,如果我从 JS 或 Django 视图中获取和设置 cookie 值,它是否会相同。我希望我的问题很清楚。我对 cookie 的主题有点陌生。谢谢

4

2 回答 2

10

request.COOKIESdocument.cookie包含相同的数据集;但是,获取和设置 cookie 值的方式完全不同。

request.COOKIES是一个python dict,供您阅读cookie。例如,你有一个名为“color”的cookie,它的值为“blue”,当你这样做时request.COOKIES['color'],你会得到字符串“blue”。您不能使用request.COOKIES设置 cookie,因为这些 cookie 值是在浏览器发出请求时由浏览器发送给 django 的。要设置 cookie,您需要使用HttpResponse.set_cookie. ( https://docs.djangoproject.com/en/1.5/ref/request-response/#django.http.HttpResponse.set_cookie)]

document.cookie另一方面,是“原始”格式的 cookie,它是一串以分号分隔的名称-值对。要读取特定的 cookie,您需要对该字符串执行搜索以找到您要查找的 cookie;要设置 cookie,您需要调用document.cookie = "name=value;..."[ ref ]。但大多数时候,JavaScript 库/框架已经为您完成了繁琐的工作,因此获取/设置 cookie 应该只是一组函数调用。

于 2013-06-18T06:10:51.957 回答
1

请求.COOKIES

返回

包含所有 cookie 的标准 Python 字典。键和值是字符串。

document.cookie返回一个字符串

我认为迭代字典并获取所有cookie比解析javascript返回的字符串更容易

于 2013-06-18T05:47:09.567 回答