2010年5月12日水曜日

pythonのテンプレートエンジンmako

最近は、pythonアリの発注(受注)が出てきて嬉しい限りです。

google appengineフレームワークには、
テンプレートエンジンが同梱しており、
これがなかなかの使い勝手。

サーバも含めてオマカセ案件では、
appengineにしちゃうのが最近の筆者の手口です。

非appengineのプロジェクトでも使いたいものですが、
納品先の事情でCGIベースでしか実装するしかない場合は、
他の選択肢を探さざるを得ません。

仕方なく、テンプレートエンジンを探す訳ですが、
色々比較してみて、結局 mako とやらで実装中です。

Mako Template of Python
http://www.makotemplates.org/

生pythonコードを埋め込めるタイプ。
構文もpythonそのものに酷似しています。
内部的にpython(しかもclassに)に変換しちゃってるらしい。

故に、他のテンプレートファイルを「継承」できるらしい。

例えば、ページのフッター&ヘッダーを差し込みたい場合。
それぞれ別ファイルを作って、includeするのが一般的だと思いますが。

ページ全体をヘッダー&フッター付きでデザインしておいて、
個々のページは内側だけ作って、inheritすれば済みます。しかも1回で。

記述のテイストがPHPに似ているので、
「テンプレートエンジン」として「ラクになってる感」は薄めですが、
継承はなかなか使いでがあります。


ライブラリの構成ファイル群は、
少ない部類に入るような気がします。
スピンアップが早そう。って事ね。
app engineで強引に使ってみるのもアリかもしれません。