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