テンプレートエンジンを使ったことがありますか?
使ってみれば、便利なモノだとわかるでしょう。
Pythonでテンプレートエンジンと言えば、Jinja2が候補に挙がることが多いです。
本記事の内容
- Jinja2とは?
- Jinja2のシステム要件
- Jinja2のインストール
- Jinja2の動作確認
それでは、上記に沿って解説していきましょう。
Jinja2とは?
Jinja2とは、テキストベースのテンプレートエンジン(言語)です。
テンプレートエンジンは、開発者とデザイナーの分業で力を発揮します。
実際、私は過去にテンプレートエンジンにお世話になりました。
その時は、PHPのSmartyを利用していました。
まだ、ガラケーとかが存在していた時です。
ガラケー用の画面とPC用の画面をそれぞれ作成する必要がありました。
今から考えると無駄に感じますよね。
でも、その分だけクライアントからお金を取れました。
そのような時代もあったということです。
話を戻すと、テンプレートエンジンが生み出すのは「分離」と言えます。
上記の昔話からも、以下の分離が出てきました。
- 開発者とデザイナーの分離(分業)
- PC画面とガラケー画面の分離(別々に制作可能)
これらの分離が可能なのは、なぜだと思いますか?
それは、データと表示が別れているから可能なのです。
そして、データと表示の間を取り持つのがテンプレートエンジンと言えます。
以上、Jinja2を昔話を添えて説明しました。
次は、Jinja2のシステム要件を確認しましょう。
Jinja2のシステム要件
現時点(2021年4月)でのJinja2の最新バージョンは、2.11.3となります。
この最新バージョンは、2021年1月1日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
OSに関しては、特に気にする必要はありません。
ただ、Pythonのバージョンには注意が必要です。
- Python 2.7
- Python 3.5以降
上記の条件が、存在しています。
つまり、古いPython 3系はダメということです。
以上、Jinja2のシステム要件についてでした。
次は、Jinja2をインストールしていきます。
Jinja2のインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.0.1 setuptools 54.2.0
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、Jinja2のインストールです。
Jinja2のインストールは、以下のコマンドとなります。
pip install Jinja2
インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- Jinja2 2.11.3 MarkupSafe 1.1.1 pip 21.0.1 setuptools 54.2.0
Jinja2とともに、MarkupSafeというパッケージがインストールされています。
MarkupSafeは、HTMLやXMLの文字列をエスケープするライブラリですね。
以上、Jinja2のインストールについての説明でした。
最後は、Jinja2の動作確認を行います。
Jinja2の動作確認
Jinja2の動作確認用のサンプルコードは、以下。
from jinja2 import Template template = Template('このサンプルコードは、 {{ title }}用です。') result = template.render(title='Jinja2の動作確認') print(result)
上記を実行した結果は、以下。
このサンプルコードは、 Jinja2の動作確認用です。
プログラムの内容は、説明不要ですね。
上記の例では、文字列をテンプレートにしています。
文字列よりは、ファイルをテンプレートにすることの方が多いかもしれません。
でも、ファイルも結局は文字列の集合に過ぎませんけどね。
使い方は、私が以前に利用していたSmartyに似ています。
そもそも、テンプレートエンジンはどれも似たようなルールになってしまいます。
以上、Jinja2の動作確認について説明しました。