Bor*_*sev 3 javascript python django cookies
我正在尝试使用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;
}
Run Code Online (Sandbox Code Playgroud)
在我的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>""" % "??????"
Run Code Online (Sandbox Code Playgroud)
所以我知道我的JS改变了语言cookie的价值,但我认为Django没有得到它.另一方面,当我再次在我的Python代码中设置并获取cookie时,就会设置cookie.我的问题是,是否有一种方法可以让JS和Django一起工作--JavaScript设置cookie值,而Python只在被问及并采取适当的行动时才读取它?
谢谢.
会话与cookie不同.
Sessions是一个内部Django数据库表,其密钥存储在cookie中.但是,除密钥之外的其余数据都存储在数据库中.
如果要访问客户端设置的实际cookie,则需要使用request.COOKIES字典:
if request.COOKIES['language'] == 'EN':
return """<b>%s</b>""" % "Home"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2193 次 |
| 最近记录: |