ガジェカツ~在宅SEのガジェット活動ブログ~

在宅SEな筆者がガジェットネタやIT、プログラミングネタを書き連ねるブログ

GoogleAppEngineでのテンプレートエンジンの使い方

また使うであろうからメモ。

  1. 最初のまとめ
    1. GoogleAppEngineではDjangoのテンプレートエンジンを使える。
    2. 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 %} を抜いても良い。

  1. 参考サイト
    1. Djangoテンプレート言語―Djangov1.0 documentation
    2. にーやんのブログ::Google App Engine SDK:テンプレートの使用