我正在嘗試使用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