Skip to main content
 首页 » 编程设计

python之开发服务器重启时 Django 注销

2025年05月04日32qq号

在开发 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 在评论中提到的,当您有多个进程为网站提供服务时,您可能会遇到用户不断注销的情况。