在django项目中request.COOKIES vs document.cookie

时间:2013-06-18 05:22:19

标签: javascript django cookies

我正在开发一个Django项目。无论用户是登录还是注销,我都希望保持UI首选项。

所以饼干是我想的方式。所以我很困惑request.COOKIES 在python和JS中的document.cookie是一回事。 我的意思是如果我从JS或Django视图获取和设置cookie值将是相同的。 我希望我的问题很清楚。我是一个新的饼干主题。 感谢

2 个答案:

答案 0 :(得分:7)

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应该只是一组函数调用。

答案 1 :(得分:1)

  

Request.Cookies时

返回

  

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

document.cookie返回一个字符串

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