fc2ブログ

【Python】テンプレートエンジンjinja2を使ってみる

2012-02-16 00:59:13 Thu

■jinja2を使ってみる


pythonでテンプレートエンジン、というといくつもあるみたいです。

http://labs.unoh.net/2007/05/python_1.html
http://d.hatena.ne.jp/ymotongpoo/20101213/1292252414


  • Cheetah

  • Mako

  • Jinja2

  • Django

  • Kid

  • Genshi

  • Clearsilver

  • Nevow

  • SimpleTAL

  • Chameleon

  • web2py

  • Tornado

  • Bottle



で、大御所がおすすめされていたのでjinja2を使ってみました。


■とりあえず動かす


ひとまず動かしてみます。
easy_install jinja2 でライブラリをインストールしておきます。


from jinja2.environment import Environment
from jinja2.loaders import FileSystemLoader

env = Environment(loader=FileSystemLoader('../templates/'))
template = env.get_template('template.txt')
data_maps = {'name':'jinja'}
file = open('../dest/test.txt', 'w+')
file.write(template.render(data_maps))

templatesディレクトリにある「template.txt」ファイルを元にして
destディレクトリに「test.txt」ファイルを出力します。

Loaderには色々あるようで、場面に合わせて最適なローダーを使うようにします。
http://www.geocities.jp/showa_yojyo/note/python-jinja2.html#environment

今回は「FileSystemLoader」を使ってます。

テンプレートには「name='jinja', hoge='fuga'...」で値を渡します。
dictionaryだと楽かもですね。


出力 : {{name}}

条件分岐 :
{% if name != '' %}
{{name}}
{% else %}
空でした
{% endif %}

繰り返し :
{% for item in items %}
{{ loop.index0 }}
{% endfor %}



ざっとでした。

参考URL
http://ymotongpoo.appspot.com/jinja2_ja/api.html
http://www.geocities.jp/showa_yojyo/note/python-jinja2.html
http://nayuta.info/archives/67
http://www.gesource.jp/weblog/?p=3527

⇒comment

Secret

名言集
全記事(数)表示
全タイトルを表示
ブログ内検索
Loading