我正在处理一个 Django 项目。无论用户登录还是注销,我都想让 UI 首选项保持不变。
所以饼干是我想的方式。所以我很困惑request.COOKIES
在 python 和document.cookie
JS 中是否是同一件事。我的意思是,如果我从 JS 或 Django 视图中获取和设置 cookie 值,它是否会相同。我希望我的问题很清楚。我对 cookie 的主题有点陌生。谢谢
我正在处理一个 Django 项目。无论用户登录还是注销,我都想让 UI 首选项保持不变。
所以饼干是我想的方式。所以我很困惑request.COOKIES
在 python 和document.cookie
JS 中是否是同一件事。我的意思是,如果我从 JS 或 Django 视图中获取和设置 cookie 值,它是否会相同。我希望我的问题很清楚。我对 cookie 的主题有点陌生。谢谢
request.COOKIES
并document.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 应该只是一组函数调用。
请求.COOKIES
返回
包含所有 cookie 的标准 Python 字典。键和值是字符串。
并document.cookie
返回一个字符串
我认为迭代字典并获取所有cookie比解析javascript返回的字符串更容易