在开发 Django 1.8 项目时,每次开发服务器重新启动时我都会注销。这意味着每次更改 python 代码(并且开发服务器重新启动)我都必须重新登录。这让我有点抓狂。
我正在使用默认的 SESSION_ENGINE 即 django.contrib.sessions.backends.db 并且可以看到 django_session 表有值。
我打开了 DEBUG=True。
谁能建议其他要检查的东西?谢谢。
请您参考如下方法:
作为一项安全措施(以免在公共(public)版本控制中保存敏感信息)我在 settings.py 中自动生成了 SECRET_KEY 例如
chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'
SECRET_KEY = get_random_string(50, chars)
当 runserver 重新启动时,它会重新生成,但因为这是 session token ,数据库中的 token 与设置中的 token 不匹配,我已经登录了。部署版本不是问题,而是痛苦的原因在开发版本中。
为了解决这个问题,我将这一行保留在 settings.py 中,并在 local_settings.py 中硬编码一个 SECRET_KEY,它不会被提交到版本控制。
2022 年 10 月 20 日更新
我现在使用环境变量,例如
import os
SECRET_KEY = os.environ['SECRET_KEY']
并且不会推荐此解决方案。正如 @abdul-aziz-barkat 在评论中提到的,当您有多个进程为网站提供服务时,您可能会遇到用户不断注销的情况。
