Este repositorio es una compilación preliminar de los patrones que estoy usando y desarrollando al escribir proyectos de Django que usan htmx, con código de ejemplo completo.
Los documentos están pensados para verse en GitHub: https://github.com/spookylukey/django-htmx-patterns/ y el código se puede ejecutar localmente si es necesario.
Mis objetivos son documentar y compartir:
El código presentado depende únicamente de Django y htmx, a menos que se indique lo contrario. No lo empaquetaré como una biblioteca. En cambio, se está lanzando al dominio público y le recomendamos que lo copie y pegue según sus propias necesidades. (Consulte los documentos "Enfoque" para saber por qué).
Hay algunos paquetes de Django que proporcionan atajos para algunas de las cosas mencionadas aquí, como django-htmx, pero no usaré ninguno de ellos en aras de la claridad.
Este es un trabajo en progreso, intentaré mantenerlo actualizado. Los RP son bienvenidos.
Las mayores contribuciones en este repositorio son:
parciales en línea con selección de bloque en la plantilla.
Este es un patrón que le permite mantener juntas las partes de la página para lograr una gran "localidad de comportamiento" y evitar que el código de vista tenga que saber algo sobre qué fragmentos/parciales de plantilla se están utilizando. Los cambios de código de plantilla para htmx generalmente consisten en envolver algunas partes de una plantilla en un block
de plantilla de Django y agregar atributos htmx estándar. Los cambios de código de vista para htmx a menudo consisten simplemente en agregar un único decorador en la función de vista: @for_htmx(use_block_from_params=True)
.
Este patrón marca una gran diferencia en la usabilidad de htmx en Django.
Ejemplo completo de validación de formulario htmx campo por campo, manteniendo la abstracción de formulario de Django y todos sus beneficios.
bonitos patrones para hacer modales
Django
htmx (consulte la plantilla base para ver los documentos de instalación sugeridos)
Los mejores patrones aquí requieren django-render-block:
pip instala django-render-block
Mi código de ejemplo incluye monstruos tristes y felices a los que se puede abrazar o patear para cambiar su estado. Tenga en cuenta que no apoyo patear monstruos ni aconsejo abrazarlos.
En la carpeta de códigos hay una aplicación de demostración que tiene ejemplos completos de todo lo que se encuentra en los documentos.
Para instalar localmente, cree y active un virtualenv y luego haga:
codigo del CD instalación de pip -r requisitos.txt python administrar.py migrar python administrar.py servidor de ejecución
¡Tus comentarios son muy bienvenidos! Destaque este repositorio si le gusta y comparta ideas sobre las discusiones.
Algunos otros buenos recursos html:
Si te gustó este repositorio, es posible que algunos de mis otros recursos también te ayuden: