43

このテーブルはパージする必要がありますか、それともDjangoによって自動的に処理されますか?

4

5 に答える 5

60

Djangoは自動パージを提供していません。ただし、手動で行うのに役立つ便利なコマンドがあります。Django docs:セッションストアをクリアする

python manage.py clearsessions
于 2011-09-03T22:26:18.110 に答える
18
  1. Django1.6以降
    python manage.py clearsessions
    
  2. Django1.5以下
    python manage.py cleanup
    
  3. DjangoShellから
    from django.contrib.sessions.models import Session
    Session.objects.all().delete()
    
  4. django-session-cleanup cornJob
于 2017-10-07T05:30:46.213 に答える
2

私の場合、期限切れのセッション(ここではMySQL)だけでなく、すべてのセッションを削除するためdevelopment server、データベースコマンドよりもデータベースコマンドの方が好きです。python manage.py clearsessionsデータベースにログインして実行するには:

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テーブルからクリアされます。

それでも、1日より長い期間にわたって期限切れのレコードをクリアするルーチンを作成する必要があります。これは、ユーザーが開いているセッションでブラウザを閉じたときにログをクリアするために必要です。

Django3.2.4を使用しました

于 2021-12-23T06:22:40.713 に答える
0

その他の方法:

私はDjango3.2を使用していますが、django-auto-logoutパッケージを使用することをお勧めします。

これにより、アクティブ時間とアイドル時間のセッション制御が可能になります。

テンプレートでは、Javascriptと一緒に変数を使用できます。

于 2022-01-11T15:13:29.203 に答える