我正在尝试使用Django框架在英语和保加利亚语中构建网站。我的想法是用户应该点击一个按钮,页面将重新加载并且语言将被改变。这是我正在试图做到这一点:在Django中无法检索JavaScript Cookie值
在我的HTML我哈瓦一个按钮标签<button id='btn' onclick="changeLanguage();" type="button"> ... </button>
从cookies.js的摘录:
function changeLanguage() {
if (getCookie('language') == 'EN') {
document.getElementById('btn').innerHTML = getCookie('language');
setCookie("language", 'BG');
} else {
document.getElementById('btn').innerHTML = getCookie('language');
setCookie("language", 'EN');
}
}
function setCookie(sName, sValue, oExpires, sPath, sDomain, bSecure) {
var sCookie = sName + "=" + encodeURIComponent(sValue);
if (oExpires) {
sCookie += "; expires=" + oExpires.toGMTString();
}
if (sPath) {
sCookie += "; path=" + sPath;
}
if (sDomain) {
sCookie += "; domain=" + sDomain;
}
if (bSecure) {
sCookie += "; secure";
}
document.cookie = sCookie;
}
而在我的views.py这个文件是的情况
@base
def index(request):
if request.session['language'] == 'EN':
return """<b>%s</b>""" % "Home"
else request.session['language'] == 'BG':
return """<b>%s</b>""" % "Начало"
所以我知道我的JS更改语言cookie的值,但我认为Django不明白。另一方面,当我在我的Python代码中再次设置并获取cookie时,cookie会被设置。我的问题是,是否有一种方法可以使JS和Django一起工作 - JavaScript设置cookie值,Python只在被问及时才会读取它并采取适当的操作?
谢谢。
非常感谢你:)。这完全是我需要的,也是一个即时回复。 P.S.我问了我这个宽敞的问题,几乎肯定他不会有答案,但他向我解释了这个问题。我已经在SO上发布了这个问题,所以他匆匆赶到他的个人电脑回答这个问题以获得好处:D。但是你只用了一秒钟就打败了他:D。 – 2010-05-28 18:15:52
使用cookie比使用Django的contrib中间件和会话组合更安全吗?我发现cookies更易于理解和掌握,并且我感觉通过存储在内部数据库中,并根据传入请求进行验证,我对用户身份验证进行了更细致的控制。 – SexyBeast 2016-07-17 15:40:29