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

him*_*hyr 3 javascript django cookies

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

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

Ye *_*Liu 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,只是强调一下,`request.COOKIES`正在通过python读取cookie *服务器端*,而`document.cookie`正在读取cookie *客户端* (2认同)