[PYTHON] Comment supprimer des sessions expirées dans Django

Supprimer les sessions expirées avec Django: blush:

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.

Environnement éprouvé

Django 3.0.5 Python 3.8.2

Confirmation des spécifications

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.

Comment supprimer

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.

Vérification

Vérification de la table DB

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.

Supprimer par commande

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.

Pour ton information

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.

Site référencé

https://stackoverflow.com/questions/7296159/django-session-database-table-cleanup

Recommended Posts

Comment supprimer des sessions expirées dans Django
Comment refléter CSS dans Django
Comment faire des événements envoyés par le serveur dans Django
Comment implémenter la fonctionnalité de type helper Rails dans Django
Comment refléter ImageField dans Django + Docker (oreiller)
Comment créer une API Rest dans Django
Comment obtenir plusieurs objets de modèle au hasard dans Django
Comment utiliser le bootstrap dans la vue de classe générique Django
Comment télécharger des fichiers dans la vue de classe générique Django
Comment utiliser Decorator dans Django et comment le créer
Comment développer en Python
Comment référencer des fichiers statiques dans un projet Django
Comment supprimer avec SQLAlchemy?
Comment écrire une validation personnalisée dans Django REST Framework
Comment utiliser ORM / Query Builder Orator de type Laravel avec Django
Comment vérifier le comportement d'ORM avec un fichier avec django
Comment mettre à jour les informations utilisateur sur Django RemoteUserMiddleware login
[Django] Comment donner des valeurs d'entrée à l'avance avec ModelForm
Comment générer une requête à l'aide de l'opérateur IN dans Django
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
[Python] Comment faire PCA avec Python
Comment gérer une session dans SQLAlchemy
[Django] Comment tester le formulaire [TDD]
Comment écrire sobrement avec des pandas
Erreur liée à memcached dans django
Comment mettre à jour Spyder dans Anaconda
Comment utiliser SQLite en Python
Comment convertir 0,5 en 1056964608 en un seul coup
Comment créer / supprimer des liens symboliques
Comment démarrer avec Django
Comment tuer des processus en vrac
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment supprimer un conteneur Docker
Comment écrire un fichier wsgi.py indépendant de l'environnement Django1.9
Comment exécuter du code TensorFlow 1.0 en 2.0
Comment gérer le japonais avec Python
Comment se connecter à Docker + NGINX
Comment appeler PyTorch dans Julia
[Django] Comment lire les variables / constantes définies dans un fichier externe
Comment déployer une application Django sur heroku en seulement 5 minutes
Comment supprimer plusieurs positions (index) spécifiées dans une liste Python
Comment effectuer un traitement arithmétique avec le modèle Django
Comment utiliser les colonnes calculées dans CASTable
Comment définir dynamiquement des variables en Python
Comment faire R chartr () en Python
Comment vérifier la version de Django
Comment convertir csv en tsv dans la CLI
[Itertools.permutations] Comment créer une séquence en Python
Comment utiliser Google Test en langage C
Comment implémenter un sérialiseur imbriqué avec drf-flex-fields
Comment utiliser BigQuery en Python
Comment exécuter des commandes avec Jupyter Notebook
Comment faire 'git fetch --tags' dans GitPython