PyramidでテンプレートエンジンとしてMakoを使うことを考えた話

普段、Pyramidに限らずPythonではJinja2をテンプレートエンジンとして使用している。それは、Djangoをよく使っていた私にとって、Djangoのテンプレートエンジンとよく似たJinja2は使いやすかったからである。 だが今回は、新しくWebアプリケーションを作るに際し、Pyramidの標準的なテンプレートエンジンであるMakoを試してみた。

私はPyramidの設定ファイル(development.iniやproduction.ini)にこのように書き、開発中かどうかをJinja2に知らせていた。

jinja2.globals =
    is_debug = app.helpers.true
    # is_debug = app.helpers.false

この設定は、例えばGoogle Analyticsを本番でのみ有効にするために使用している。

{% if not is_debug %}
<script>
   // AnalyticsのJavaScript
</script>
{% endif %}

どうやらMakoでこれを実現するには、Pyramidアプリケーション内で関数を登録していかなければならないようだ。となると、同じことを実現するには、設定ファイルの内容を自作関数の中で読み、値を返すことになりそうだ。

コメント

2015 - 2017 (c) 成瀬基樹