PyramidでJinja2テンプレートを使う

今回はちゃんとPyramid上でJinja2が動くかどうか確認するため、あえてテンプレートの継承を使います。

ベーステンプレートの作成

まず、templatesフォルダ内に継承の元になる__base__.jinja2ファイルを作ります。

[code lang="html"]

<!doctype html>

<head>

<title>{% block title %}{% endblock %}</title>

</head>

<body>

{% blcok body %}

{% endblock %}

</body>

</html>

[/code]

実際に表示するファイルの作成

次に、__base__.jinja2を元にしたindex.jinja2ファイルを作ります。

[code lang="html"]

{% extends "__base__.jinja2" %}

{% block title %}Top{% endblock %}

{% block body %}

<p>Simple Task</p>

{% for w in words %}

{% if w == 'spam' %}

<p>Spam</p>

{% elif w == 'eggs' %}

<p>Eggs</p>

{% else %}

<p>Bacon</p>

{% endif %}

{% endfor %}

{% endblock %}

[/code]

viewの追加

views.pyを編集します。

[code lang="python"]

@view_config(route_name='top' renderer='templates/index.jinja2')

def top(request):

words = ['spam', 'eggs', 'bacon']

return dict(words=words)

[/code]

ルーティングの追加

アプリケーションの__init__.pyを編集します。

[code lang="python"]

# config.add_route('home', '/') # コメントアウトします

config.add_route('top', '/')

[/code]

ここではトップディレクトリへのURLのリクエスト(例: http://127.0.0.1/ )のときは、先のviews.pyで追加したtop関数を呼び出すことを指定しています。

これで、開発環境のWEBサーバを起動してアクセスしてみましょう。

[code lang="shell"]

pserve development.ini --reload

[/code]

これで、ブラウザで http://0.0.0.0:6543 にアクセスして、下図のように表示されてい

れば無事PyramidでJinja2が使えています!

firstjinjasample