私は、米国の州ごとに個別の HTML ページを作成する単純な Django アプリケーションを作成しました。各州のページはbase.htmlを拡張していますが、内容は異なります。
URL は URLs.py ファイルで宣言され、ページのレンダリングは views.py でマップされます。
views.py ファイルと urls.py ファイルで各ページの名前を明示的に宣言せずに、ページ数をスケーラブルに (おそらくは数百、さらには数千まで) 増やす方法を知りたいです。
これを正しく実装するにはどうすればよいですか?
HTML ファイル
リーリーViews.py
リーリーURLs.py
リーリー
views.py および urls.py ファイルで各ページを明示的に宣言せずに、異なる名前を持つ数百または数千の HTML ページを Django に効率的に追加するには、動的 URL ルーティングとユニバーサル ビューを使用できます。正しい方法は次のとおりです:
urls.py ファイルを変更します:
リーリーviews.py ファイルを変更します:
リーリーこのセットアップでは、urls.py で動的 URL パターン slug:state_slug/ を使用しています。これは、任意の状態の名前を取得し、それを StateDetailView に渡します。 StateDetailView は、URL から取得した state_slug に基づいて動的テンプレートをレンダリングする汎用のクラスベースのビューです。
この実装を使用すると、views.py または urls.py ファイルを変更せずに、各州の新しい HTML ページを簡単に追加できます。各状態に対応する HTML ファイルを必ず作成し、命名規則に従ってください。後は Django が処理します。たとえば、「delaware」という名前の新しい州を追加した場合は、「states_info_app」テンプレート フォルダーに「delaware.html」という名前の新しい HTML ファイルを作成するだけです。このファイルには、URL「yourdomain.com/delaware」/」を介してアクセスされます。アクセス。このアプローチにより、ビューや URL 構成を手動で調整することなく、アプリケーションを拡張して多数の状態ページを処理できるようになります。