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

Jinja
開発元 Armin Ronachar
最新版
3.1.2 / 2022年4月29日 (23か月前) (2022-04-29)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
Python
対応OS クロスプラットフォーム
種別 テンプレートエンジン
ライセンス BSDライセンス
公式サイト https://jinja.palletsprojects.com/
テンプレートを表示

機能 編集

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

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

名前の由来 編集

Templateとtempleの発音が似ているので、templeからの連想でJinja(神社)と命名された[2]

コード例 編集

単純な使用例を以下に示す。

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>

脚注 編集

  1. ^ Releases · pallets/jinja”. 2023年12月4日閲覧。
  2. ^ Frequently Asked Questions — Jinja Documentation (2.10.x)”. jinja.palletsprojects.com. 2020年1月1日閲覧。

外部リンク 編集