El libro de Django 1.0

15.2. Instalación de Middleware

Si has leído este libro completamente hasta aquí, ya has visto varios ejemplos de instalación de middleware; muchos de los ejemplos en los capítulos previos han requerido cierto middleware. Para completar, a continuación se muestra la manera de instalar middleware.

Para activar un componente middleware, agregarlo a la tupla MIDDLEWARE_CLASSES en tu archivo de configuración. En MIDDLEWARE_CLASSES, cada componente middleware se representa con una cadena de texto: la ruta Python completa al nombre de la clase middleware. Por ejemplo, aquí se muestra la tupla MIDDLEWARE_CLASSES por omisión creada por django-admin.py startproject:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.doc.XViewMiddleware'
)

Una instalación Django no requiere ningún middleware — la tupla MIDDLEWARE_CLASSES puede estar vacía, si tu quieres — pero te recomendamos que actives CommonMiddleware, la cual explicaremos en breve.

El orden es importante. En las fases de petición y vista, Django aplica el middleware en el orden que figura en MIDDLEWARE_CLASSES, y en las fases de respuesta y excepción, Django aplica el middleware en el orden inverso. Es decir, Django trata MIDDLEWARE_CLASSES como una especie de "wrapper" alrededor de la función de vista: en la petición recorre hacia abajo la lista hasta la vista, y en la respuesta la recorre hacia arriba. Mira la sección "Cómo procesa una petición Django: Detalles completos" en el Capítulo 3 para un repaso de las fases.