2017-09-29 37 views
1

我正在構建一個Django應用程序,爲了管理我的用戶會話,我需要您的幫助。僅針對一個用戶的全局變量

現在,我的index.html是我的登錄頁面。它是一個表格(用戶名,密碼)。 當用戶點擊登錄時,我得到表單,將其與我的用戶SQL Table進行比較,如果匹配,我將一些全局變量(firstname1,lastname1)渲染到profil_page.html。假設我只是用(username1,password1)登錄。

當我在另一臺計算機上使用另一個登錄名(username2,password2)嘗試我的應用程序時,它將我帶到profil_page.html,並在我的頁面上看到(firstname2,lastname2)。

問題是,當我回到我登錄的第一臺計算機(username1,password1)時,我刷新頁面,現在我在頁面上看到(firstname2,lastname2)。

我想這是一個會議的問題。我希望我的全局變量適用於一臺計算機,而不適用於我的整個應用程序。

非常感謝。

+0

你一直在閱讀:https://docs.djangoproject.com/en/1.11/topics/http/sessions/? –

+0

不要重新發明輪子,Django有一個穩定的,經過測試的用戶/認證/會話系統,只需使用它即可。 –

+0

哦,是的:我想你已經明白了爲什麼你不應該在長時間運行的多線程/多進程應用程序中使用全局變量?同一個進程將處理多個請求,因此每次調用寫入/變更gobals的視圖時,都會覆蓋先前的值。當您有多個併發進程並且任何進程可以提供任何用戶請求時,更加有趣。 –

回答

1

如果你想每個用戶都有一個變量,只需創建一個會話變量。這樣它將保持不變,除非用戶會話過期。

request.session['name'] = 'hello' 
+1

是的,除了會議不在首都 –

+0

@Daniel謝謝。修復。我用它們已經有一段時間了。 – hspandher