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.
To set and get the Django session in views, one may use request.session. It is also possible to set the session multiple times.
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.
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:
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