Jinja

Jinjaは、プログラミング言語Python用のテンプレートエンジンである。Djangoのテンプレートエンジンに似ているが、Pythonライクな式が使えるようになっている（テンプレートはサンドボックス内で評価されることが保証されている）。テキストベースのテンプレートエンジンであるため、HTMLやXMLだけでなく、どのようなマークアップの文書でも（例えばソースコードなども）生成できる。Jinjaは、BSDライセンスの下で公開されている。

機能 
Unixのパイプのような簡単な記法でデータを加工できるフィルタシステムを搭載している。

Jinjaでは、タグ・フィルタ・テスト・グローバルと呼ばれる機能をカスタマイズできる。また、Djangoのテンプレートエンジンとは違い、テンプレートからオブジェクトのメソッドを引数付きで呼び出せるようになっている。

名前の由来 
Templateとtempleの発音が似ているので、templeからの連想でJinja（神社）と命名された。

コード例 
単純な使用例を以下に示す。
from jinja2 import Template

template = Template('''\
<html>
<head><title>{{ variable }}</title></head>
<body>
<ul>
{% for item in item_list %}
   <li>{{ item }}</li>
{% endfor %}
</ul>
</body>
</html>''')

rendered_text = template.render(
    variable='Value with <unsafe> data',
    item_list=[1, 2, 3, 4, 5, 6]
)
print(rendered_text)このコードは次のようなHTML文字列を出力する。<html>
<head><title>Value with <unsafe> data</title></head>
<body>
<ul>

   <li>1</li>

   <li>2</li>

   <li>3</li>

   <li>4</li>

   <li>5</li>

   <li>6</li>

</ul>
</body>
</html>

脚注

外部リンク
 

Pythonライブラリ
テンプレートエンジン