Dieser Inhalt wird geändert.
## Einführung {#sec-8f30851140f6} Die Landschaft der Webentwicklung wird stetig komplexer. Frontend-Frameworks wie React oder Vue.js bieten zwar enorme Leistungsfähigkeit, sind aber nicht für jedes Projekt die ideale Wahl. Gerade bei der Implementierung einfacher dynamischer Funktionen können sie unnötige Komplexität mit sich bringen. **[[HTMX]]** ist eine **schlanke, HTML-zentrierte Bibliothek**, die entwickelt wurde, um diese Probleme zu lösen. Sie lässt sich hervorragend in serverseitige Frameworks wie Django integrieren, um dynamische Webanwendungen auf einfache Weise zu erstellen.  ## Was ist [[HTMX]]? {#sec-a0108dfea168} HTMX ist eine leichtgewichtige JavaScript-Bibliothek, die entwickelt wurde, um dynamische Webentwicklung zu vereinfachen. Sie ermöglicht die Implementierung dynamischer Funktionen wie **AJAX**, **WebSockets** und **Server-Sent Events (SSE)** direkt über HTML-Attribute – ganz ohne komplexen JavaScript-Code oder aufwendige Frontend-Frameworks. ## Wichtige HTML-Attribute von HTMX {#sec-4ea8e105a73c} * **hx-get**: Sendet eine `GET`-Anfrage an den Server. * **hx-post**: Sendet eine `POST`-Anfrage an den Server. * **hx-swap**: Fügt die vom Server empfangene Antwort in einen bestimmten Bereich der Seite ein. * **hx-trigger**: Führt Aktionen basierend auf bestimmten Ereignissen wie Klicks oder Mausbewegungen aus. * **hx-target**: Gibt das spezifische HTML-Element an, in dem der vom Server empfangene Inhalt gerendert werden soll. Dank dieser Attribute lässt sich HTMX nahtlos mit **serverzentrierten Rendering-Ansätzen** wie Django kombinieren. ## Unterschiede zwischen Django-Templates und [[HTMX]] {#sec-b553d9a1aa9d} ### 1. Django-Templates {#sec-c44ee559797a} * Django-Templates rendern HTML auf dem Server und senden dann die gesamte Seite an den Client zurück. * Sie funktionieren auf traditionelle Weise, indem sie die Seite neu laden. * Um dynamische Funktionen hinzuzufügen, müssen Sie JavaScript direkt schreiben. ### 2. Django + HTMX {#sec-c1e9f1e7e591} * Mit HTMX können Sie **nur bestimmte Bereiche aktualisieren, ohne die Seite neu zu laden**. * Django-Views geben nur einen Teil des HTML zurück, und HTMX fügt diesen in ein bestimmtes Element auf der Clientseite ein. * Es bietet eine dynamische Benutzererfahrung ohne komplexen JavaScript-Code. ## Integrationsbeispiel von Django und HTMX {#sec-9a6eada74297} ### Basis-Django-View-Code {#sec-14c13b64e461} ```python from django.shortcuts import render def update_content(request): if request.htmx: return render(request, 'partials/content.html') # Teil-HTML zurückgeben return render(request, 'index.html') # Ganze Seite zurückgeben ``` ### Template-Konfiguration {#sec-677344a74297} #### index.html ```html
Dieser Inhalt wird geändert.
Neuer Inhalt wird hier angezeigt.
``` ### Ergebnis der Funktionsweise {#sec-8475f6be53ff} 1. Wenn der Benutzer auf den Button klickt, wird eine `GET`-Anfrage an die URL `/update/` gesendet. 2. Der Server gibt das Template `partials/content.html` zurück, und der Inhalt innerhalb von `