在开发Django 1.8项目时,每次dev服务器重新启动时都会注销。这意味着每次更改python代码(并且dev服务器重新启动)时我都必须重新登录。这让我有些疯狂。
我使用的是默认SESSION_ENGINE
,即django.contrib.sessions.backends.db
,可以看到django_session
表中包含值。
我有DEBUG=True
。
有人可以建议检查其他事项吗?感谢。
答案 0 :(得分:1)
作为安全措施(为了不在公共版本控制中保存敏感信息),我在SECRET_KEY
中自动生成settings.py
,例如
chars = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'
SECRET_KEY = get_random_string(50, chars)
当runserver重新启动时,会重新生成,但因为这是会话令牌,数据库中的那个不匹配设置中的那个并且我已经登录。对于已部署的版本不是问题但是原因是开发版中的痛苦。
为了解决这个问题,我将此行保留在settings.py
中,并在SECRET_KEY
中对local_settings.py
进行硬编码,但未提交版本控制。
答案 1 :(得分:0)
这意味着每次更改python代码(并且dev服务器重新启动)时我都必须重新登录。
Django自动将对python代码的更改合并到手动重启服务器的需要。如果添加了任何新文件,则需要重新启动服务器 。
您是否正在使用python manage.py migrate
迁移更改?
确保您没有将--noreload
选项与python manage.py runserver
一起使用。
请参阅django-admin runserver docs。希望这可以帮助。 (并且因无法发表评论而道歉。)