Repo ini adalah kompilasi kasar dan siap pakai dari pola yang saya gunakan dan kembangkan saat menulis proyek Django yang menggunakan htmx, dengan kode contoh lengkap.
Dokumen dimaksudkan untuk dilihat di GitHub: https://github.com/spookylukey/django-htmx-patterns/ dan kode dapat dijalankan secara lokal jika diperlukan.
Tujuan saya adalah untuk mendokumentasikan dan berbagi:
Kode yang disajikan hanya bergantung pada Django dan htmx, kecuali dinyatakan lain. Saya tidak akan mengemasnya sebagai perpustakaan. Ini malah dirilis ke domain publik, dan Anda dianjurkan untuk menyalin-menempelkannya untuk kebutuhan Anda sendiri. (Lihat dokumen “Pendekatan” untuk mengetahui alasannya).
Ada beberapa paket Django yang menyediakan jalan pintas untuk beberapa hal yang disebutkan di sini, seperti Django-htmx, tapi saya tidak akan menggunakan satu pun dari mereka demi kejelasan.
Ini masih dalam proses, saya akan mencoba memperbaruinya. Selamat datang di PR.
Kontribusi terbesar dalam repo ini adalah:
sebagian sebaris dengan pemilihan blok di templat.
Ini adalah pola yang memungkinkan Anda menyatukan bagian-bagian halaman untuk “perilaku lokalitas” yang baik, dan menghindari kode tampilan harus mengetahui apa pun tentang fragmen/parsial templat mana yang sedang digunakan. Perubahan kode templat untuk htmx biasanya merupakan masalah membungkus beberapa bagian dari templat dalam block
templat Django dan menambahkan atribut htmx standar. Perubahan kode tampilan untuk htmx seringkali hanya menambahkan satu dekorator pada fungsi tampilan: @for_htmx(use_block_from_params=True)
.
Pola ini membuat perbedaan besar pada kegunaan htmx di Django.
contoh lengkap validasi formulir htmx bidang demi bidang, sambil menjaga abstraksi Formulir Django dan semua manfaatnya.
pola yang bagus untuk melakukan modals
Django
htmx (lihat Templat dasar untuk dokumen instalasi yang disarankan)
Pola terbaik di sini memerlukan Django-render-block:
pip install Django-render-block
Kode contoh saya mencakup monster sedih dan bahagia yang dapat dipeluk atau ditendang untuk mengubah keadaannya. Harap dicatat bahwa saya tidak mendukung menendang monster, atau menyarankan untuk memeluk mereka.
Di folder kode terdapat aplikasi demo yang memiliki contoh kerja lengkap dari semua yang ada di dokumen.
Untuk menginstal secara lokal, buat dan aktifkan virtualenv, lalu lakukan:
kode cd instalasi pip -r persyaratan.txt python kelola.py bermigrasi python kelola.py runserver
Tanggapan Anda sangat kami harapkan! Beri bintang pada repo ini jika Anda menyukainya, dan silakan berbagi ide dalam diskusi.
Beberapa sumber htmx bagus lainnya:
Jika Anda menyukai repo ini, Anda mungkin juga terbantu oleh beberapa sumber saya yang lain: