0

サイトの3つまたは4つの部分(3つまたは4つのhtmlテンプレート)を構築し、それらの一部またはすべてをGAE pythonで一緒にレンダリングする方法はありますか?1つの特定のhtmldjangoテンプレートを読み込んでレンダリングできることはわかっていますが、サイトのさまざまな部分のテンプレートをさまざまなファイルで作成し、状況に応じてそれらを一緒に作成したいと思います。

良い例は、ほとんどのWebアプリケーションページでほぼ同じメニュー、ヘッダー、フッターが必要ですが、コンテンツの特定の部分を切り替えたいということです。したがって、たとえばクラスを扱う1つのファイルとテンプレート、および学生を扱う別のテンプレートが必要です。サイト(main.html)の一般的な外観は同じですが、学生に関する情報を表示および処理する方法は同じです。クラスは完全に異なります。私は基本的に、ページ固有のhtmlの束を汎用テンプレートに植え付けたいと思っています。これについて助けてくれてありがとう。:)

探しているものの正しい専門用語がわかりません(検索してみました)。=>Zendフレームワークでは複合ビューまたはサイトフラグメントと呼ばれていると思います。

4

1 に答える 1

6

Djangoではテンプレートの継承を使用する必要があります。まず、このチュートリアルをご覧ください。

編集テンプレートの継承に関する公式のDjangoBookセクションでは、フッターやナビゲーションバーなどのさまざまな「フラグメント」をさまざまなテンプレートファイルに保存し、包含と継承を介してまとめることもできます。

このサイトは、サイトセクションテンプレートが基本的なレイアウトテンプレートを拡張する場合のように、あるテンプレートが別のテンプレートからどのように継承できるかを示しています。

{% extends "base.html" %}

また、テンプレートインクルージョンを使用して、たとえば、パズルのピースのような大きなテンプレートにさまざまなピースを追加する方法も示します。たとえば、ナビゲーションフラグメントを次のフレーズでレイアウトファイルに追加できます。

{% include "nav.html" %}

@Nick Johnsonのコメントに記載されているように、:extendsはよりコンパクトで、複数のファイルフラグメントを使用する必要がなくなります。include失敗した場合の最後の手段としてのみextends

編集「大きなHTMLファイルを複数のHTMLファイルにカットする方法」に関する質問への私の回答も参照してください。

于 2012-04-29T11:22:26.863 に答える