Jinja2とは
Jinja2はPython向けの高機能テンプレートエンジンです。Webアプリケーションや静的サイトのHTML生成に広く利用されています。
主な特徴
- 柔軟な構文:Pythonに似た表記で条件分岐やループが書けます。
- 継承とブロック:レイアウトを共通化し、部分的に上書き可能。
- フィルタとテスト:データ変換や検証を簡潔に記述。
基本的な使い方
テンプレートの作成
{% raw %}{% extends \"base.html\" %}{% block content %}
{{ title }}
{% for item in items %}
- {{ item }}
{% endfor %}
{% endblock %}{% endraw %}
Pythonからのレンダリング
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader(\"templates\"))
template = env.get_template(\"example.html\")
output = template.render(title='サンプル', items=['A', 'B', 'C'])
print(output)
高度な機能
- カスタムフィルタの定義
-
def reverse_string(value): return value[::-1] env.filters['reverse'] = reverse_string
-
- マクロの利用
-
{% raw %}{% macro render_table(rows) %}{% for row in rows %}
{% endmacro %}{% endraw %}{% for cell in row %} {% endfor %}{{ cell }} {% endfor %}
-
まとめ
Jinja2はシンプルさと拡張性を兼ね備えたテンプレートエンジンです。基本構文をマスターすれば、Web開発の生産性を大幅に向上させることができます。