Sesiones

Gestión de sesiones

Habilitar sesiones

INSTALLED_APPS = [
    ...
    'django.contrib.sessions',
    ....

MIDDLEWARE = [
    ...
    'django.contrib.sessions.middleware.SessionMiddleware',
    ....

Ejemplo: contador de visitas

Tienes que adaptarlo a nuestro modelo de View del proyecto

def index(request):
    ...
    
    # Number of visits to this view, as counted in the session variable.
    num_visits = request.session.get('num_visits', 0)
    request.session['num_visits'] = num_visits + 1

    context = {
        'num_visits': num_visits,
    }

    # Render the HTML template index.html with the data in the context variable.
    return render(request, 'index.html', context=context)

Configuración

  • Database sessions (por defecto)
  • File-based sessions
  • Cached sessions
  • Cookie-based sessions
    • SESSION_COOKIE_AGE
    • SESSION_COOKIE_DOMAIN
    • SESSION_COOKIE_SECURE
    • SESSION_EXPIRE_AT_BROWSER_CLOSE
    • SESSION_SAVE_EVERY_REQUEST
    • SESSION_COOKIE_HTTPONLY (para evitar acceso desde javascript)

Mejores prestaciones: cache-based sessions (Memcached, Redis).

Última modificación November 13, 2022: update (38e6fd9)