我正在开发一个Django项目。无论用户是登录还是注销,我都希望保持UI首选项。
所以饼干是我想的方式。所以我很困惑request.COOKIES
在python和JS中的document.cookie
是一回事。
我的意思是如果我从JS或Django视图获取和设置cookie值将是相同的。
我希望我的问题很清楚。我是一个新的饼干主题。
感谢
答案 0 :(得分:7)
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应该只是一组函数调用。
答案 1 :(得分:1)
Request.Cookies时
返回
包含所有Cookie的标准Python字典。键和值 是字符串。
和document.cookie
返回一个字符串
我认为更容易迭代字典并获取所有cookie而不是解析javascript返回的字符串