Session database table cleanup
Question:
Does this table need to be purged or is it taken care of automatically by Django?
Answers:
Django does NOT provide automatic purging. There is however a handy command available to help you do it manually: Django docs: Clearing the session store
python manage.py clearsessions
- Django 1.6 or Above
python manage.py clearsessions
- Django 1.5 or lower
python manage.py cleanup
- From Django Shell
from django.contrib.sessions.models import Session
Session.objects.all().delete()
- django-session-cleanup
cornJob
On my development server
, I prefer a database command over python manage.py clearsessions
because you delete all sessions, not just the expired ones (here: MySQL). To login into your database and do:
truncate table django_session;
BTW, session
is not a database, but a table (django_session) and an app (django.contrib.sessions
).
I know this post is old but I tried this command/attribute and it worked for me.
In the ‘base.html’ file, I inserted:
{{ request.session.clear_expired }}
This clears expired records from the django_session table when the user clicks on any link in the template after the session expires.
Even so, it is necessary to create a routine to clear expired records over a period longer than one day. This is necessary to clear logs when user closes browser with open sessions.
I used Django 3.2.4
Other method:
I’m using Django 3.2 and i recommend using the django-auto-logout package.
It allows active time and idle time session control.
In the template you can use variables together with Javascript.
Does this table need to be purged or is it taken care of automatically by Django?
Django does NOT provide automatic purging. There is however a handy command available to help you do it manually: Django docs: Clearing the session store
python manage.py clearsessions
- Django 1.6 or Above
python manage.py clearsessions
- Django 1.5 or lower
python manage.py cleanup
- From Django Shell
from django.contrib.sessions.models import Session Session.objects.all().delete()
- django-session-cleanup
cornJob
On my development server
, I prefer a database command over python manage.py clearsessions
because you delete all sessions, not just the expired ones (here: MySQL). To login into your database and do:
truncate table django_session;
BTW, session
is not a database, but a table (django_session) and an app (django.contrib.sessions
).
I know this post is old but I tried this command/attribute and it worked for me.
In the ‘base.html’ file, I inserted:
{{ request.session.clear_expired }}
This clears expired records from the django_session table when the user clicks on any link in the template after the session expires.
Even so, it is necessary to create a routine to clear expired records over a period longer than one day. This is necessary to clear logs when user closes browser with open sessions.
I used Django 3.2.4
Other method:
I’m using Django 3.2 and i recommend using the django-auto-logout package.
It allows active time and idle time session control.
In the template you can use variables together with Javascript.