我现在在我的 web 应用程序中搞乱 Session,我注意到每当我重新启动开发服务器(Django 附带的内置服务器)时,会话不会自行重置。即使我一遍又一遍地重新启动服务器,它仍然存在。
我在哪里可以设置它,以便每当我重置/重新启动开发服务器时,会话都会被刷新/清除?
我现在在我的 web 应用程序中搞乱 Session,我注意到每当我重新启动开发服务器(Django 附带的内置服务器)时,会话不会自行重置。即使我一遍又一遍地重新启动服务器,它仍然存在。
我在哪里可以设置它,以便每当我重置/重新启动开发服务器时,会话都会被刷新/清除?
更改运行服务器文件
DJANGO_SETTINGS_MODULE="myproj.settings" \
python -c 'from django.contrib.sessions.models import Session; \
Session.objects.all().delete()'
python manage.py runserver
在这里查看 Django 片段:清除会话表 -> http://djangosnippets.org/snippets/48/
另一种解决方案是使用非持久会话后端。例如,
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
假设:Django 1.0-1.5,使用默认缓存后端 (LocMem)
使用 signed_cookies 后端并清除浏览器的 cookie也可以,但我还没有尝试过。
Django 默认使用数据库作为会话后端
默认值:django.contrib.sessions.backends.db
因此,当重新加载开发服务器时,旧会话会从数据库中恢复。这也适用于文件和 cached_db 后端。