Python Guestbook コード ウォークスルーのこのパートでは、動的なウェブ コンテンツを生成するための Jinja テンプレートの使用方法について説明します。
このページは複数ページからなるチュートリアルの一部です。設定などの手順を最初から見るには、ゲストブックの作成に移動してください。
コードに HTML が埋め込んであると、コードを追いにくくなり保守が困難です。このような場合はテンプレート システムを使用すると便利です。テンプレート システムは、アプリケーションのデータが出現する場所を示す特殊な構文を使って、HTML を別ファイルとして維持します。Python 用のテンプレート システムには、EZT、Cheetah、ClearSilver、Quixote、Django、Jinja2 など、数多くのものがあります。好みのテンプレート エンジンをアプリケーション コードにバンドルして使用できます。
手軽な方法としては、App Engine に Django と Jinja2 のテンプレート エンジンが搭載されています。
Jinja2 テンプレートの使用
app.yaml
ファイルには、必須ライブラリとしての最新バージョンの jinja2
がリストされています。本番環境のアプリケーションでは、version: latest
ではなく実際のバージョン番号を使用してください。
アプリによって jinja2
がインポートされ、jinja2.Environment
オブジェクトが作成されます。
MainPage
リクエスト ハンドラの get
メソッドは Key-Value ペアのディクショナリを形成し、これを template.render
に渡します。
このディクショナリを入力データとして受信する index.html
テンプレートに従って、ページがレンダリングされます。
JINJA_ENVIRONMENT.get_template(name)
メソッドは、テンプレート ファイルの名前を受け取り、テンプレート オブジェクトを返します。template.render(template_values)
呼び出しは、値のディクショナリを受け取り、レンダリングしたテキストを返します。このテンプレートは Jinja2 テンプレート構文を使用して値にアクセスして反復処理し、各値のプロパティを参照できます。