【Python/Flask】テンプレートエンジンとは?変数展開する方法

PythonモジュールFlaskのテンプレートエンジンで変数展開する方法についてまとめました。

テンプレートエンジンとは

本ページの内容は以下動画で解説しています。

Pythonモジュール「Flask」には「Jinja2」というテンプレートエンジンが標準搭載されています。
テンプレートエンジンとは、Webページ(html)を動的に作成できる機能です。テンプレートエンジンは、あらかじめ用意したテンプレート(HTMLのひな形)を加工して出力します。
実際のコードを見たほうが理解しやすいと思うので、テンプレートエンジン有りとなしのコードの違いをみていきます。

【例1】テンプレートエンジン無しの場合

まずは、テンプレートエンジンなしの最低限の機能だけで文字列(HTML)を返すだけのWebアプリを作ってみます。

■server.py


上記のプログラムを実行し、ブラウザで「http://127.0.0.1:8000」にアクセスすると、「トップページです」表示されます。
ただし、このやり方だと複雑なページになるほど、HTMLのコード管理が面倒になります。

【例2】テンプレートエンジンありの場合

テンプレートエンジンを用いる場合、returnで「render_template」メソッドを返します。

書式

render_template(テンプレートファイルのパス, 変数名1=値1, 変数名2=値2, ...)

第一引数には、テンプレートファイル(HTMLの雛形)のパスを指定します。
第2引数以降で、テンプレート(HTMLの雛形)内で使う変数をキーワード引数(変数名 = 値)で指定します(カンマ区切りで複数指定可能)。

テンプレートファイル内では{{変数名}}を入れることで、render_template関数の引数に指定した変数を展開できます。
テンプレートファイルは、pythonファイル(app.runするもの)と同じ階層にtemplatesフォルダを作成し、その中に配置します。

■ディレクトリ構成

root/
|__server.py
|__templates/
      |__index.html

■server.py
→pythonファイル(app.runするもの)


■templates/index.html
→テンプレートファイル(トップページ用)です


上記のプログラムを実行し、ブラウザで「http://127.0.0.1:8000」にアクセスすると、「トップページです」表示されます。

関連ページ

【Flask超入門】簡単かつ効率的にWebアプリを作ろう
PythonモジュールFlaskの使い方、Webアプリケーションを作る方法について入門者向けにまとめました。

コメント