Django Session
Session in Django is a mechanism to store small information on the server-side during the interaction with the Django web application. Session information gets stored in the database and allows for cache-based or file-based sessions. Django Session is implemented by the middleware and session app mentioned.
in settings.py namely, django.contrib.sessions.middleware.SessionMiddleware and django.contrib.sessions.
Get and Set Django Session
To set and get the Django session in views, one may use request.session. It is also possible to set the session multiple times.
request.session
The session can also make the client-side stored Cookie data more secure. It can be used to abstract the receiving and sending of cookies, use a session ID for identification, and store data in the database. The session can also make use of the not accept cookies setting in the web browser.
Django Session Example
Mention below code in view.py
from django.shortcuts import render
from django.http import HttpResponse
def setsession(request):
request.session['sname'] = 'Ram'
return HttpResponse("User session is set")
def getsession(request):
sname = request.session['sname']
return HttpResponse("Welcome " + sname);
On the first visit to the URL response will be:
User session is set
On re-visiting to the URL response will be:
Welcome Ram
Django Session Timeout
To timeout the Django session after a specified timestamp (in seconds) mention the code below in settings.py
SESSION_COOKIE_AGE = 60 # for 60 seconds timestamp
To timeout Django session after a specified timestamp (in seconds) of inactivity mention the code below in settings.py
pip install django-session-timeout
MIDDLEWARE = [
...
'django_session_timeout.middleware.SessionTimeoutMiddleware',
...
]
SESSION_EXPIRE_SECONDS = 30
SESSION_EXPIRE_AFTER_LAST_ACTIVITY = True