이 콘텐츠는 변경됩니다.
## Introducción {#sec-8f30851140f6} El entorno de desarrollo web es cada vez más complejo. Aunque frameworks frontend como React o Vue.js son potentes, no siempre son indispensables para todos los proyectos. Especialmente cuando se busca implementar funcionalidades dinámicas sencillas, estos frameworks pueden introducir una complejidad innecesaria. **[[HTMX]]** es una **librería ligera centrada en HTML** que surge para resolver estos problemas, integrándose perfectamente con frameworks de lado del servidor como Django para construir aplicaciones web dinámicas de forma sencilla.  ## ¿Qué es [[HTMX]]? {#sec-a0108dfea168} HTMX es una librería JavaScript ligera diseñada para simplificar el desarrollo web dinámico. Permite implementar funcionalidades dinámicas como **AJAX**, **WebSocket** y **Server-Sent Events (SSE)** utilizando únicamente atributos HTML, sin necesidad de código JavaScript complejo ni frameworks frontend. ## Atributos HTML clave de HTMX {#sec-4ea8e105a73c} * **hx-get**: Envía una solicitud `GET` al servidor. * **hx-post**: Envía una solicitud `POST` al servidor. * **hx-swap**: Inserta la respuesta recibida del servidor en una parte específica de la página. * **hx-trigger**: Ejecuta una acción según un evento específico, como un clic o el movimiento del ratón. * **hx-target**: Especifica el elemento HTML concreto donde se renderizará el contenido recibido del servidor. Gracias a estos atributos, HTMX se integra de forma natural con el **modelo de renderizado centrado en el servidor**, como el que utiliza Django. ## Diferencias entre las plantillas de Django y [[HTMX]] {#sec-b553d9a1aa9d} ### 1. Plantillas de Django {#sec-c44ee559797a} * Las plantillas de Django renderizan el HTML en el servidor y luego devuelven la página completa al cliente. * Operan de manera tradicional, recargando la página. * Para añadir funcionalidades dinámicas, es necesario escribir JavaScript directamente. ### 2. Django + HTMX {#sec-c1e9f1e7e591} * Con HTMX, es posible **actualizar solo partes específicas de la página sin recargarla**. * Una vista de Django devuelve solo una porción de HTML, y HTMX la inserta en un elemento específico del cliente. * Ofrece una experiencia de usuario dinámica sin necesidad de código JavaScript complejo. ## Ejemplo de integración de Django y HTMX {#sec-9a6eada58ca7} ### Código básico de la vista de Django {#sec-14c13b64e461} ```python from django.shortcuts import render def update_content(request): if request.htmx: return render(request, 'partials/content.html') # 부분 HTML 반환 return render(request, 'index.html') # 전체 페이지 반환 ``` ### Configuración de las plantillas {#sec-677344a74297} #### index.html ```html
이 콘텐츠는 변경됩니다.
새로운 콘텐츠가 여기 표시됩니다.
``` ### Resultado de la operación {#sec-8475f6be53ff} 1. Cuando el usuario hace clic en el botón, se genera una solicitud `GET` a la URL `/update/`. 2. El servidor devuelve la plantilla `partials/content.html`, y el contenido dentro de `