繁体   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