【问题标题】:Session database table cleanup会话数据库表清理
【发布时间】:2011-11-09 21:40:19
【问题描述】:

这个表需要被清除还是由 Django 自动处理?

【问题讨论】:

    标签: python django django-sessions


    【解决方案1】:

    其他方法:

    我正在使用 Django 3.2,我建议使用 django-auto-logout 包。

    它允许活动时间和空闲时间会话控制。

    在模板中,您可以将变量与 Javascript 一起使用。

    【讨论】:

    • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
    【解决方案2】:

    我知道这篇文章很旧,但我尝试了这个命令/属性,它对我有用。

    在“base.html”文件中,我插入了: {{ request.session.clear_expired }}

    当会话过期后用户点击模板中的任何链接时,这会从 django_session 表中清除过期记录。

    即便如此,还是有必要创建一个例程来清除超过一天的过期记录。当用户关闭带有打开会话的浏览器时,这是清除日志所必需的。

    我使用的是 Django 3.2.4

    【讨论】:

      【解决方案3】:

      Django 不提供自动清除功能。但是,有一个方便的命令可以帮助您手动完成:Django docs: Clearing the session store

      python manage.py clearsessions
      

      【讨论】:

      • 如果你使用 Django 1.5 或更低版本,你可以使用 python manage.py cleanup
      • 我在我的 psql 中发现TRUNCATE django_session; 也可以工作。
      • 我会在删除之前预先检查会话:在 mysql 中 select*from django_session; 或查看有多少 select count (*)from django_session;
      • @Alper 小心截断表,这将有效地清除系统中每个用户的会话,而不仅仅是 clearsessions 所做的过期用户.有时这很好,但我敢打赌,您不想擦除每个人的有效会话数据……比如说一个 5 分钟前登录的人。
      • @ViaTech 哦,在这种情况下(用于打包旧网站),这是一个非常好的结果。
      【解决方案4】:

      在我的development server 上,我更喜欢使用数据库命令而不是python manage.py clearsessions,因为您删除了所有会话,而不仅仅是过期的会话(这里:MySQL)。要登录到您的数据库并执行以下操作:

      truncate table django_session;
      

      顺便说一句,session 不是数据库,而是一个表 (django_session) 和一个应用程序 (django.contrib.sessions)。

      【讨论】:

      • 根据我的测试,clearsessions 删除所有会话是错误的。在 Django 2.2.7 中,我可以确认当前会话保留在表中。
      • 截断也会删除活动会话
      【解决方案5】:
      1. Django 1.6 或更高版本
        python manage.py clearsessions
        
      2. Django 1.5 或更低版本
        python manage.py cleanup
        
      3. 来自 Django Shell
        from django.contrib.sessions.models import Session
        Session.objects.all().delete()
        
      4. django 会话清理 cornJob

      【讨论】:

        猜你喜欢
        • 2012-05-12
        • 2011-07-05
        • 2014-12-31
        • 1970-01-01
        • 2015-01-31
        • 2015-08-14
        • 2015-07-05
        • 2015-03-13
        • 1970-01-01
        相关资源
        最近更新 更多