簡體   English   中英

會話數據在本地服務器中工作,而不是在服務器中 - Django

[英]Session data works in local server, not in server - Django

我有一個 Django 應用程序,它使用 cookie 會話將數據從一個模板/函數傳遞到另一個模板/函數。

我面臨的問題是,雖然使用基於文件的 cookie 設置 cookie,但它在本地完美地工作,但是當我嘗試在 Digital Ocean 開發服務器中設置相同的會話時,它由於某種未知原因而失敗。

這是帶有會話的事務的文件

設置.py

嘗試1:

SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies"
SESSION_COOKIE_NAME = "user_session"
SESSION_COOKIE_HTTPONLY = True
SESSION_SAVE_EVERY_REQUEST = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True

嘗試2:

SESSION_ENGINE = 'django.contrib.sessions.backends.file'
SESSION_FILE_PATH = os.path.join(BASE_DIR, "session")

視圖.py

def pre_login(request):
    request.session['pre_login'] = data
    ....

def index(request):
    user_data = request.session['pre_login']
    ....

在瀏覽器中檢查 cookie 會話時,它會為 Localhost 創建一個 sessionid。 但是當檢查相同代碼的會話時,我的開發服務器什么都沒有。

您正在設置請求中的值。 當您嘗試在另一個視圖中獲取它時,您超出了范圍。

https://docs.djangoproject.com/en/4.0/topics/http/sessions/#using-sessions-out-of-views

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM