Ce contenu sera modifié.
## Introduction {#sec-8f30851140f6} L'environnement de développement web devient de plus en plus complexe. Les frameworks frontend comme React ou Vue.js sont puissants, mais ils ne sont pas toujours indispensables pour chaque projet. Surtout lorsque vous souhaitez implémenter des fonctionnalités dynamiques simples, ces frameworks peuvent introduire une complexité excessive. **[[HTMX]]** est apparue pour résoudre ces problèmes. C'est une **bibliothèque légère centrée sur HTML** qui s'intègre parfaitement avec des frameworks côté serveur comme Django, permettant de construire des applications web dynamiques de manière simple.  ## Qu'est-ce que [[HTMX]] ? {#sec-a0108dfea168} HTMX est une bibliothèque JavaScript légère conçue pour simplifier le développement web dynamique. Elle permet d'implémenter des fonctionnalités dynamiques telles qu'**AJAX**, **WebSocket** et **Server-Sent Events (SSE)** en utilisant uniquement des attributs HTML, sans nécessiter de code JavaScript complexe ou de frameworks frontend. ## Principaux attributs HTML de HTMX {#sec-4ea8e105a73c} * **hx-get**: Envoie une requête `GET` au serveur. * **hx-post**: Envoie une requête `POST` au serveur. * **hx-swap**: Insère la réponse reçue du serveur dans une partie spécifique de la page. * **hx-trigger**: Exécute une action en fonction d'un événement spécifique, tel qu'un clic ou un mouvement de souris. * **hx-target**: Spécifie l'élément HTML où le contenu reçu du serveur sera rendu. Grâce à ces attributs, HTMX s'associe naturellement avec une **approche de rendu centrée sur le serveur** comme celle de Django. ## Différences entre les Templates Django et [[HTMX]] {#sec-b553d9a1aa9d} ### 1. Templates Django {#sec-c44ee559797a} * Les Templates Django rendent le HTML côté serveur, puis renvoient la page entière au client. * C'est une méthode traditionnelle qui fonctionne avec un rechargement complet de la page. * Pour ajouter des fonctionnalités dynamiques, il est nécessaire d'écrire du JavaScript directement. ### 2. Django + HTMX {#sec-c1e9f1e7e591} * Avec HTMX, vous pouvez **mettre à jour des parties spécifiques de la page sans la recharger**. * Une vue Django renvoie seulement une partie du HTML, et HTMX l'insère dans un élément spécifique côté client. * Cela offre une expérience utilisateur dynamique sans code JavaScript complexe. ## Exemple d'intégration de Django et HTMX {#sec-9a6eada58ca7} ### Code de la vue Django de base {#sec-14c13b64e461} ```python from django.shortcuts import render def update_content(request): if request.htmx: return render(request, 'partials/content.html') # Retourne un HTML partiel return render(request, 'index.html') # Retourne la page entière ``` ### Configuration des templates {#sec-677344a74297} #### index.html ```html
Ce contenu sera modifié.
Le nouveau contenu apparaît ici.
``` ### Résultat du fonctionnement {#sec-8475f6be53ff} 1. Lorsqu'un utilisateur clique sur le bouton, une requête `GET` est envoyée à l'URL `/update/`. 2. Le serveur renvoie le template `partials/content.html`, et le contenu de `