这张表需要被清除还是由 Django 自动处理?
25803 次
5 回答
60
Django 不提供自动清除。然而,有一个方便的命令可以帮助您手动完成:Django docs: Clearing the session store
python manage.py clearsessions
于 2011-09-03T22:26:18.110 回答
18
- Django 1.6 或更高版本
python manage.py clearsessions
- Django 1.5 或更低版本
python manage.py cleanup
- 来自 Django 外壳
from django.contrib.sessions.models import Session Session.objects.all().delete()
- django-session-cleanup 玉米作业
于 2017-10-07T05:30:46.213 回答
2
在 my 上development server
,我更喜欢数据库命令,python manage.py clearsessions
因为您删除了所有会话,而不仅仅是过期的会话(这里:MySQL)。要登录到您的数据库并执行以下操作:
truncate table django_session;
顺便说一句,session
不是数据库,而是表(django_session)和应用程序(django.contrib.sessions
)。
于 2018-03-15T09:50:25.903 回答
0
我知道这篇文章很旧,但我尝试了这个命令/属性,它对我有用。
在“base.html”文件中,我插入了:{{ request.session.clear_expired }}
这会在会话过期后用户单击模板中的任何链接时从 django_session 表中清除过期记录。
即便如此,有必要创建一个例程来清除超过一天的过期记录。当用户关闭带有打开会话的浏览器时,这是清除日志所必需的。
我使用了 Django 3.2.4
于 2021-12-23T06:22:40.713 回答
0
于 2022-01-11T15:13:29.203 回答