2

我现在在我的 web 应用程序中搞乱 Session,我注意到每当我重新启动开发服务器(Django 附带的内置服务器)时,会话不会自行重置。即使我一遍又一遍地重新启动服务器,它仍然存在。

我在哪里可以设置它,以便每当我重置/重新启动开发服务器时,会话都会被刷新/清除?

4

2 回答 2

2

更改运行服务器文件

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/

于 2012-06-20T03:59:21.940 回答
2

另一种解决方案是使用非持久会话后端。例如,

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

假设:Django 1.0-1.5,使用默认缓存后端 (LocMem)

使用 signed_cookies 后端并清除浏览器的 cookie也可以,但我还没有尝试过。

为什么?

Django 默认使用数据库作为会话后端

会话引擎

默认值:django.contrib.sessions.backends.db

因此,当重新加载开发服务器时,旧会话会从数据库中恢复。这也适用于文件和 cached_db 后端。

于 2013-01-12T20:06:23.420 回答