Sitzungen werden in Django standardmäßig in der Datenbank gespeichert. Wenn Sie es in Ruhe lassen, erhöht sich die Anzahl der abgelaufenen Sitzungen Ich möchte Ihnen zeigen, wie Sie es löschen können.
Django 3.0.5 Python 3.8.2
Wenn Sie die Spezifikationen überprüfen, wird die empfohlene Methode geschrieben. Clearing the session store
Django does not provide automatic purging of expired sessions. Therefore, it’s your job to purge expired sessions on a regular basis. Django provides a clean-up management command for this purpose: clearsessions.
Es ist Ihre Aufgabe, regelmäßig aufzuräumen, da es nicht automatisch aufräumt. Aber es fühlt sich an, als hätte ich einen Befehl.
Anscheinend gibt es einen Befehl namens Clearsessions.
Gehen Sie einfach in das Verzeichnis, in dem sich manage.py befindet, und geben Sie den folgenden Befehl ein.
$ python manage.py clearsessions
Dies scheint ** nur abgelaufene Sitzungen ** aus der Datenbank zu entfernen.
Sie können die Sitzung in der Tabelle ** django_session ** sehen. Enthält derzeit ** 2 ** Daten.
sqlite> select session_key, expire_date from django_session;
3dub24wutcq28y7lhgnfl2rasoy37646|2020-07-11 19:20:40
g7s29wnv45boguo5np33yroq61t4v9c2|2020-07-25 13:50:10
expire_date ist 2020-07-11 und 2020-07-25.
Überprüfen Sie das aktuelle Datum und löschen Sie die Sitzung.
$ date
Sonntag, 12. Juli 2020 23:00:36
$ python manage.py clearsessions
Lassen Sie uns die Tabelle überprüfen.
sqlite> select session_key, expire_date from django_session;
g7s29wnv45boguo5np33yroq61t4v9c2|2020-07-25 13:50:10
Es gibt nur ** 1 ** Fälle. Am 2020-7-12 23:00:36 ist die Sitzung 2020-07-11 abgelaufen und wurde gelöscht.
Lassen Sie uns den Quellcode des Befehls überprüfen. Quelle der Clearsessions
class SessionStore(SessionBase):
...
@classmethod
def clear_expired(cls):
cls.get_model_class().objects.filter(expire_date__lt=timezone.now()).delete()
expire_date < timezone.now()
Sie können sehen, dass die Daten vor der aktuellen Zeit als Ziel ausgewählt werden.
https://stackoverflow.com/questions/7296159/django-session-database-table-cleanup
Recommended Posts