GoogleAppEngineでのテンプレートエンジンの使い方
また使うであろうからメモ。
- 最初のまとめ
- GoogleAppEngineではDjangoのテンプレートエンジンを使える。
- firstofが多バイトに対応してないバグは修正されている。
んじゃ使い方から。
まずはテンプレートを作る。
これは好きな名前でいい。僕はtemplate.htmlにした。
中身はこんな感じに作る。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>{{ title }}</title> </head> <body> <p><span id="title">{{ title }}</span></p> </body> </html>
次にプログラム部分、
まずはテンプレートエンジンの為のモジュールを呼び出す。
import os from google.appengine.ext.webapp import template
そしてテンプレートに挟んでいる変数(この場合は{{title}})の中身をセットするための辞書(連想配列)、template_valuesを作成する。
template_values = { 'title': 'TestSite', }
あとは、テンプレートまでのパスを作って、それをtemplate.renderにtemplate_valuesと一緒に指定して表示すればオッケー。
path = os.path.join(os.path.dirname(__file__), 'template.html') self.response.out.write(template.render(path, template_values))
if文も使えるけど、指定した変数の中身が真の時に実行、というものしか出来ない。
{% if OK %}OK!{% else %} No! {% endif %}
みたいに使う。
この場合のtemplate_valuesはこうなる。
template_values = { 'OK': True, }
もちろん{% else %} を抜いても良い。