El libro de Django 1.0

Capítulo 15. Middleware

En ocasiones, necesitarás ejecutar una pieza de código en todas las peticiones que maneja Django. Éste código puede necesitar modificar la petición antes de que la vista se encargue de ella, puede necesitar registrar información sobre la petición para propósitos de debugging, y así sucesivamente.

Tu puedes hacer esto con el framework middleware de Django, que es un conjunto de acoples dentro del procesamiento de petición/respuesta de Django. Es un sistema de plugins muy ligero y de bajo nivel capaz de alterar de forma global tanto la entrada como la salida de Django.

Cada componente middleware es responsable de hacer alguna función específica. Si estas leyendo este libro en orden desde el primer capítulo, ya has visto middleware varias veces:

  • Todas las herramientas de usuario y sesión que vimos en el Capítulo 12 son posibles gracias a unas pequeñas piezas de middleware (más específicamente, el middleware hace que request.session y request.user estén disponibles para ti en las vistas.
  • La cache global del sitio discutida en el Capítulo 13 es solo una pieza de middleware que desvía la llamada a tu función de vista si la respuesta para esa vista ya fue almacenada en la cache.
  • Todas las aplicaciones contribuidas flatpages, redirects, y csrf del Capítulo 14 hacen su magia a través de componentes middleware.

Este capítulo explica más a fondo qué es exactamente el middleware y cómo funciona, y explica cómo puedes escribir tu propio middleware.