Este repositório é uma compilação simples dos padrões que estou usando e desenvolvendo ao escrever projetos Django que usam htmx, com código de exemplo completo.
Os documentos devem ser visualizados no GitHub: https://github.com/spookylukey/django-htmx-patterns/ e o código pode ser executado localmente, se necessário.
Meus objetivos são documentar e compartilhar:
O código apresentado depende apenas de Django e htmx, salvo indicação em contrário. Não vou empacotá-lo como uma biblioteca. Em vez disso, ele está sendo lançado em domínio público e você é incentivado a copiá-lo e colá-lo de acordo com suas próprias necessidades. (Veja a documentação “Abordagem” para saber o porquê).
Existem alguns pacotes Django que fornecem atalhos para algumas das coisas mencionadas aqui, como django-htmx, mas não usarei nenhum deles por uma questão de clareza.
Este é um trabalho em andamento, tentarei mantê-lo atualizado. PRs são bem-vindos.
As maiores contribuições neste repo são:
parciais embutidos com seleção de bloco no modelo.
Este é um padrão que permite manter as partes da página juntas para uma ótima “localidade de comportamento” e evitar que o código de visualização precise saber alguma coisa sobre quais fragmentos/parciais do modelo estão sendo usados. As alterações no código do modelo para htmx geralmente são uma questão de agrupar algumas partes de um modelo em um block
de modelo do Django e adicionar atributos htmx padrão. As alterações no código de visualização para htmx geralmente são apenas a adição de um único decorador na função de visualização: @for_htmx(use_block_from_params=True)
.
Este padrão faz uma enorme diferença na usabilidade do htmx no Django.
exemplo completo de validação de formulário htmx campo por campo, mantendo a abstração Form do Django e todos os seus benefícios.
bons padrões para fazer modais
Django
htmx (veja Modelo base para documentos de instalação sugeridos)
Os melhores padrões aqui requerem django-render-block:
pip instalar django-render-block
Meu código de exemplo inclui monstros tristes e felizes que podem ser abraçados ou chutados para mudar seu estado. Observe que eu não endosso chutar monstros, nem aconselho abraçá-los.
Na pasta de código há um aplicativo de demonstração que contém exemplos completos de funcionamento de tudo nos documentos.
Para instalar localmente, crie e ative um virtualenv e faça:
código do CD pip instalar -r requisitos.txt python manager.py migrar servidor de execução python manager.py
Seu feedback é muito bem-vindo! Marque este repositório com estrela se gostar e compartilhe ideias nas discussões.
Alguns outros bons recursos HTML:
Se você gostou deste repositório, você também pode ser ajudado por alguns dos meus outros recursos: