概要
jinja2 はテンプレートエンジンです
Ruby でいうところの erb です
今回は Python3 で jinja2 を使ってみました
環境
- macOS 10.13.5
- Python 3.6.5
- jinja2 2.10
サンプルコード
Getting Started
- vim test_jinja2.py
from jinja2 import Template
template = Template('Hello {{ name }}!')
ret = template.render(name='John Doe')
print(ret)
ファイルから読み込み
- python3 test_jinja2.py
from jinja2 import Template, Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('.'))
template = env.get_template('test.tpl')
data = {'name': 'hawksnowlog', 'items': ['blog', 'twitter', 'youtube']}
disp_text = template.render(data)
print(disp_text)
- test.tpl
String
{{ name }}
List
{% for item in items -%}
* {{ item }}
{% endfor %}
for 文の最後のマイナスは trim でこれがある場合は自動で改行しません
タグをそのまま表示
- vim raw_jinja2.py
from jinja2 import Template, Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('.'))
template = env.get_template('test2.tpl')
disp_text = template.render()
print(disp_text)
- vim test2.tpl
{% raw %}
<ul>
{% for item in seq %}
<li>{{ item }}</li>
{% endfor %}
</ul>
{% endraw %}
raw
セクションを使います
最後に
jinja2 を Python3 から使ってみました
簡単な機能しか紹介してませんが他にも機能 (block, child template, macro) はたくさんあります
かなり強力なテンプレートエンジンなのでこれ 1 つでほとんどまかなえると思います
0 件のコメント:
コメントを投稿