我正在 Django 中进行会话。
默认情况下,django 将会话存储在django_session
,我发现没有办法清除会话。
Though clearsessions
可用于删除行。还建议将其作为 cron 作业运行。但这样做意味着注销所有登录用户,对吗?
这是正确的做法吗?
姜戈文档 https://docs.djangoproject.com/en/2.2/topics/http/sessions/#clearing-the-session-store状态(我强调):
清除会话存储
当用户在您的网站上创建新会话时,会话数据可以
累积在您的会话存储中。如果您使用数据库
后端,django_session
数据库表将会增长。如果您正在使用
文件后端,您的临时目录将包含不断增加的
文件数量。
要理解这个问题,请考虑数据库发生的情况
后端。当用户登录时,Django 将添加一行到django_session
数据库表。 Django 每次更新会话数据时都会更新这一行
变化。如果用户手动注销,Django 会删除该行。但如果
用户不会注销,该行永远不会被删除。一个相似的
该过程发生在文件后端。
Django 不提供自动清除过期会话的功能。
所以,清除过期会话是你的工作定期进行。
Django 为此提供了一个清理管理命令:clearsessions
。建议定期调用该命令
基础,例如每日 cron 作业.
请注意,缓存后端不易受到此问题的影响,因为
缓存会自动删除过时的数据。 cookie 后端也不是,
因为会话数据是由用户的浏览器存储的。
找到这个链接阿比德A的回答 https://stackoverflow.com/a/7296233/1218980.
The clearsessions https://docs.djangoproject.com/en/2.2/ref/django-admin/#django-contrib-sessions command
可以作为 cron 作业运行或直接清除过期的会话。
所以它不会注销每个用户。
正如凯文·克里斯托弗·亨利在一篇文章中提到的comment https://stackoverflow.com/questions/38753183/django-clearing-sessions-in-django-session-table/38753254?noredirect=1#comment64882372_38753183而在另一个可能重复 https://stackoverflow.com/a/37221549/1218980你的问题由 e4c5 标记 https://stackoverflow.com/questions/38753183/django-clearing-sessions-in-django-session-table/38753254?noredirect=1#comment64884597_38753183.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)