# Simplificando el desarrollo web dinámico con Django y HTMX (Parte 3): Integración con Django La robusta filosofía de "Pilas Incluidas" de **[[Django]]**, combinada con la astuta forma en que **[[HTMX]]** aprovecha los fragmentos de HTML recién generados por el backend, crea una sinergia perfecta. En esta publicación, la tercera parte de nuestra serie **Simplificando el desarrollo web dinámico con Django y HTMX**, exploraremos dos métodos específicos para integrar HTMX en un proyecto Django real.  ----- ## 1. Uso directo sin paquetes de terceros {#sec-ca790606f6d7} Este es el método más puro y ligero. Permite usar las funciones de HTMX al instante, simplemente añadiendo una línea de script en su plantilla HTML, sin procesos de instalación complejos. ### Métodos de instalación {#sec-1b32901b18e3} La documentación oficial de HTMX sugiere varios métodos de instalación, pero el más rápido es, sin duda, el uso de un **CDN**. * **Uso de CDN (el más rápido):** Simplemente inserte el siguiente código dentro de la etiqueta `
` de su `base.html`: ```html ``` * **Descarga directa:** Si la seguridad o un entorno sin conexión son cruciales, puede descargar [htmx.min.js](https://www.google.com/search?q=https://unpkg.com/htmx.org/dist/htmx.min.js), colocarlo en la carpeta `static` de su proyecto y especificar la ruta. * **npm:** Si está utilizando un sistema de compilación, puede instalarlo con el comando `npm install htmx.org`. [Acceder a la documentación oficial de instalación de HTMX](https://htmx.org/docs/#installing) ----- ## 2. Uso del paquete django-htmx {#sec-e127afe305db} En el ecosistema de Django, existe una librería dedicada que ayuda a usar [[HTMX]] de una manera más "a lo Django": se trata de **django-htmx**. ### Instalación y configuración {#sec-1fad40addfc9} Siga los pasos a continuación según la [documentación oficial de django-htmx](https://django-htmx.readthedocs.io/en/latest/installation.html). 1. **Instalación del paquete** ```bash python -m pip install django-htmx ``` 2. **Registro en INSTALLED_APPS** ```python INSTALLED_APPS = [ ..., "django_htmx", ..., ] ``` 3. **Añadir Middleware** ```python MIDDLEWARE = [ ..., "django_htmx.middleware.HtmxMiddleware", ..., ] ``` ----- ### ¿Qué tan conveniente es django-htmx? {#sec-9b3f39c88466} Es cierto que uno podría preguntarse si realmente es necesario instalar un paquete adicional como **django-htmx**, dado que [[HTMX]] es una herramienta bastante sencilla por sí misma. De hecho, las funcionalidades principales pueden implementarse sin este paquete. Sin embargo, al examinar las características de conveniencia que ofrece, se comprende por qué muchos desarrolladores optan por utilizarlo. Según la documentación oficial de **django-htmx**, su característica principal es que **extiende el objeto `request` a través de un middleware**. Al registrar el middleware, se crea un atributo `request.htmx`, que permite acceder fácilmente a la siguiente información detallada: * **Verificación de la solicitud:** `boosted`, `current_url`, `current_url_abs_path`, `history_restore_request`, `prompt` * **Control de objetivos y disparadores:** `target`, `trigger`, `trigger_name`, `triggering_event` Además, soporta **dos etiquetas especiales** que facilitan el trabajo con plantillas: * `{% htmx_script %}`: La etiqueta principal que inserta el script de la librería HTMX. * `{% django_htmx_script %}`: Una etiqueta auxiliar que añade scripts de extensión para depuración, útil cuando HTMX se ha incluido directamente desde un CDN o como archivo estático. Un aspecto particularmente impresionante son los **11 métodos útiles** incluidos en el módulo `django_htmx.http`. Entre ellos, `trigger_client_event()` destaca claramente. Permite configurar fácilmente el encabezado `HX-Trigger` en el lado del servidor y enviarlo con la respuesta, lo que posibilita **controlar eventos del cliente directamente desde el servidor**. Una vez que te acostumbras, se convierte en una herramienta potente y de uso muy frecuente. Por supuesto, todas estas funcionalidades pueden ser implementadas por el desarrollador creando middlewares o manipulando encabezados directamente. Por lo tanto, si prefiere un enfoque más manual, como yo, quizás no lo considere un paquete esencial. En conclusión, **django-htmx** no es un paquete "imprescindible", pero sin duda **"hace que el desarrollo sea notablemente más cómodo"**. La cantidad de documentación oficial no es extensa, por lo que con una o dos horas de dedicación será suficiente para comprenderlo. Decida si implementarlo o no según la naturaleza de su proyecto. ----- ## Conclusión {#sec-2c0be77e7e31} Si solo planea implementar unos pocos botones de alternancia o funcionalidades de 'me gusta', el **uso directo (CDN)** será suficiente. Evitar dependencias innecesarias puede ser lo más económico. Sin embargo, si el proyecto crece en escala y se encuentra a menudo en situaciones donde una única vista debe manejar tanto páginas completas como parciales, entonces **django-htmx** es una opción a considerar. ¿Qué enfoque le resulta más atractivo? De hecho, dado que django-htmx no es un paquete pesado, sino bastante ligero, la respuesta podría ser simplemente instalarlo y usarlo sin pensarlo demasiado. Es más bien una cuestión de la preferencia y el estilo del desarrollador: 'Minimizaré los paquetes de dependencia' o 'Prefiero hacer la mayoría de las cosas yo mismo'. Creo que se reduce a la personalidad del desarrollador. No obstante, sea cual sea su elección, con [[HTMX]] podrá disfrutar de la simplicidad de HTML, liberándose de [[JavaScript]]. **Artículos relacionados** : - [Simplificando el desarrollo web dinámico con Django y HTMX (Parte 1)](/ko/whitedec/2025/1/27/django-htmx-dynamic-web-simplification/) - [Simplificando el desarrollo web dinámico con Django y HTMX - Ajax (Parte 2)](/ko/whitedec/2025/1/27/django-htmx-dynamic-web-simplification-2/) - [Simplificando el desarrollo web dinámico con Django y HTMX (Parte 3): Métodos de integración con Django](/es/whitedec/2025/1/27/django-htmx-dynamic-web-simplification-3/) - [Simplificando el desarrollo web dinámico con Django y HTMX (Parte 4): Métodos de envío de Payload](/es/whitedec/2025/1/27/django-htmx-csrf-token-integration/) - [Simplificando el desarrollo web dinámico con Django y HTMX: Uso de Forms y Serializers](/es/whitedec/2026/4/22/django-htmx-forms-serializer-usage/) - [Simplificando el desarrollo web dinámico con Django y HTMX: Uso de Triggers](/es/whitedec/2026/4/23/django-htmx-dynamic-web-development-trigger/)