Les sessions sont enregistrées dans la base de données par défaut dans Django. Si vous le laissez seul, le nombre de sessions expirées augmentera, donc Je voudrais vous montrer comment le supprimer.
Django 3.0.5 Python 3.8.2
Si vous vérifiez les spécifications, la méthode recommandée est écrite. 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.
C'est votre travail de nettoyer régulièrement, car il ne nettoie pas automatiquement. Mais j'ai l'impression d'avoir une commande.
Apparemment, il existe une commande appelée clearsessions.
Accédez simplement au répertoire où se trouve manage.py et tapez la commande suivante.
$ python manage.py clearsessions
Cela semble supprimer ** uniquement les sessions expirées ** de la base de données.
Vous pouvez voir la session dans le tableau ** django_session **. Contient actuellement ** 2 ** données.
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 est le 11/07/2020 et le 25/07/2020.
Vérifiez la date actuelle et supprimez la session.
$ date
Dimanche 12 juillet 2020 23:00:36
$ python manage.py clearsessions
Vérifions le tableau.
sqlite> select session_key, expire_date from django_session;
g7s29wnv45boguo5np33yroq61t4v9c2|2020-07-25 13:50:10
Il n'y a que des cas ** 1 **. En date du 2020-07-12 23:00:36, la session 2020-07-11 a expiré et a été supprimée.
Vérifions en fait le code source de la commande. Source de 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()
Vous pouvez voir que les données antérieures à l'heure actuelle sont ciblées.
https://stackoverflow.com/questions/7296159/django-session-database-table-cleanup
Recommended Posts