Subscribed unsubscribe Subscribe Subscribe

PyramidでJinja2の環境を作る

Pyramidの標準のテンプレートエンジンはMakoです。

Makoについては全然わかりません。

Django、GAE用フレームKayと渡り歩いてきた私にとって、PythonのWebフレームワークのテンプレートエンジンといえばJinja2なのです。

なので、はじめからMakoを覚えよう、というエネルギーよりも、Jinja2を使えるようにするんだ!という意欲しかわきません。

ということで、開発を開始する前にPyramidでJinja2を使う方法を書きます。

まずは、Jinja2本体とPyramidでJinja2を使うためのパッケージ(pyramid-jinja2)を開発環境で使う準備をするために、development.iniの[app:main]項目の中に下記を追記します。

 

[code lang="python"]

<pre>jinja2.directories = %(here)s/myproject/templates</pre>

[/code]

 

また、同じくdevelopment.iniの[app:main] の中のpyramid.includeの中に、下記を追加します。

[code lang="python"]

<pre>pyramid_jinja2</pre>

[/code]

 

ここまでで、development.iniの[app:main]の中身はこうなっているはずです。(※コメントアウト分は除いています。)

[code lang="python"]

<pre>[app:main]

use = egg:simpletask

pyramid.reload_templates = true

pyramid.debug_authorization = false

pyramid.debug_notfound = false

pyramid.debug_routematch = false

pyramid.default_locale_name = en

pyramid.includes =

pyramid_debugtoolbar

pyramid_tm

pyramid_jinja2

sqlalchemy.url = sqlite:///%(here)s/simpletask.sqlite

jinja2.directories = %(here)s/simpletask/templates</pre>

[/code]

 

次に、このプロジェクトの必須パッケージといてjinja2とpyramid-jinja2パッケージを指定するために、setup.pyのrequiresリストの中に、次の2つを登録します。

これで、setup.pyのrequiresのリストはこうなっています。

[code lang="python"]

<pre>requires = [

'pyramid',

'SQLAlchemy',

'transaction',

'pyramid_tm',

'pyramid_debugtoolbar',

'zope.sqlalchemy',

'waitress',

'jinja2',

'pyramid-jinja2',

]</pre>

[/code]

 

これで、次のコマンドをうつと、Jinja2とpyramid-jinja2パッケージがインストールされます。

[code lang="bash"]

python setup.py develop

[/code]

 

次回は、実際にJinja2を使ったテンプレートを書いてレンダリングしてみます。