Sessions help websites remember who you are. Cookie-based sessions store data in your browser, while database sessions keep data on the server.
Cookie-based sessions vs database sessions in Django
In Django settings.py: # For cookie-based sessions SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' # For database sessions SESSION_ENGINE = 'django.contrib.sessions.backends.db'
Use SESSION_ENGINE to choose the session type.
Cookie sessions store data on the user's browser, signed to prevent tampering.
# Cookie-based session example SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
django_session.# Database session example SESSION_ENGINE = 'django.contrib.sessions.backends.db'
This simple Django view saves a favorite color in the session and then reads it back. It works the same whether you use cookie-based or database sessions.
from django.http import HttpResponse from django.shortcuts import redirect def set_session(request): request.session['favorite_color'] = 'blue' return HttpResponse('Favorite color saved in session.') def get_session(request): color = request.session.get('favorite_color', 'not set') return HttpResponse(f'Favorite color is {color}.')
Cookie sessions keep data on the client, so size is limited (usually 4KB max).
Database sessions can store more data and are safer from user tampering.
Database sessions require a database hit on each request, which can be slower than cookie sessions.
Cookie-based sessions store data in the browser; database sessions store data on the server.
Use cookie sessions for small, simple data and database sessions for larger or sensitive data.
Django lets you switch easily by changing SESSION_ENGINE in settings.