无法在Djang中检索JavaScript cookie值

2024-09-30 20:34:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用Django框架建立一个英语和保加利亚语的网站。我的想法是用户应该点击一个按钮,页面将重新加载,语言也将改变。我就是这样做的:

在我的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;
}

在我的视图.py把这件事归档

^{pr2}$

所以我知道我的JS改变了语言cookie的值,但我认为Django不能理解。另一方面,当我在Python代码中再次设置并获取cookie时,cookie就设置好了。我的问题是,是否有一种方法可以让JS和Django协同工作——JavaScript设置cookie值,Python只在被要求时读取它并采取适当的操作?在

谢谢。在


Tags: django语言ifcookiebuttondocument按钮language
1条回答
网友
1楼 · 发布于 2024-09-30 20:34:59

会话与cookie不同。在

Sessions是一个内部Django数据库表,其键存储在cookie中。但是,除了密钥之外的其余数据都存储在数据库中。在

如果要访问客户端设置的实际cookie,则需要使用request.COOKIES字典:

if request.COOKIES['language'] == 'EN':
    return """<b>%s</b>""" % "Home" 

相关问题 更多 >