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
yrequest.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
, ycsrf
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.