このリポジトリは、htmx を使用する Django プロジェクトを作成するときに使用および開発しているパターンを、完全なサンプル コードとともに大まかにまとめたものです。
ドキュメントは GitHub: https://github.com/spookylukey/django-htmx-patterns/ で表示することを目的としており、必要に応じてコードをローカルで実行できます。
私の目的は、次のことを文書化して共有することです。
示されているコードは、特に断りのない限り、Django と htmx のみに依存します。ライブラリとしてパッケージ化するつもりはありません。代わりにパブリック ドメインとしてリリースされており、必要に応じてコピーして貼り付けることをお勧めします。 (理由については、「アプローチ」のドキュメントを参照してください)。
ここで説明したものの一部へのショートカットを提供する Django パッケージ (django-htmx など) がいくつかありますが、わかりやすくするために、ここではどれも使用しません。
これは進行中の作業です。最新の状態に保つように努めます。 PR の方は大歓迎です。
このリポジトリにおける最大の貢献は次のとおりです。
テンプレート内のブロック選択を使用したインライン パーシャル。
これは、ページの一部をまとめて「動作の局所性」を高め、ビュー コードがどのテンプレートのフラグメント/部分が使用されているかを知る必要がないようにするパターンです。 htmx のテンプレート コードの変更は、通常、テンプレートの一部を Django テンプレートblock
でラップし、標準の htmx 属性を追加することによって行われます。 htmx のビュー コードの変更は、多くの場合、ビュー関数に単一のデコレータを追加するだけです: @for_htmx(use_block_from_params=True)
。
このパターンは、Django での htmx の使いやすさに大きな違いをもたらします。
Django のフォーム抽象化とそのすべての利点を維持しながら、フィールドごとの htmx フォーム検証の完全な例。
モーダルを実行するための素晴らしいパターン
ジャンゴ
htmx (推奨されるインストールに関するドキュメントについては、「ベース テンプレート」を参照)
ここで最も優れたパターンには django-render-block が必要です。
pip インストール django-render-block
私のコード例には、抱きしめたり蹴ったりして状態を変えることができる悲しいモンスターと幸せなモンスターが含まれています。モンスターを蹴ることを推奨したり、抱きしめるのを推奨したりするものではないことに注意してください。
コード フォルダーには、ドキュメント内のすべての完全な動作例が含まれるデモ アプリがあります。
ローカルにインストールするには、virtualenv を作成してアクティブ化し、次の操作を実行します。
CDコード pip install -r 要件.txt python manage.py 移行 Python manage.py runserver
フィードバックは大歓迎です!気に入ったらこのリポにスターを付けて、ディスカッションに関するアイデアを共有してください。
その他の優れた htmlx リソース:
このリポジトリが気に入った場合は、私の他のリソースも役立つかもしれません。