niiyan's blog

niiyanの個人ブログ。

Google App Engine SDK: テンプレートの使用

チュートリアルでは、フォーム画面の作成データの格納へと移るが、飛ばして先に進む。

webapp フレームワークには、Django のテンプレートエンジンが含まれているらしい。と言っても、その Django がよくわからないのだが、とりあえず Using Templates - Google App Engine - Google Code を参考にやってみる。Django については、機会があれば勉強するということで……。

1. template のインポート

helloworld.py に次の 2 行を追加する:

import os
from google.appengine.ext.webapp import template

2 行目が template モジュールの読み込み。1 行目で os モジュールがインポートされているが、パスの結合に必要みたい。この場合、os.path だけでもいいような気がするが、気にせず続ける。

2. index.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>

{{ title }} という部分が置換される部分。index.html という名前で保存。名前は別に index.html じゃなくてもいいかもしれない。

3. MainPage クラスの修正

self.response.out.write('<html><body><p>こんにちは、webapp の世界!</p></body></html>')

ここを次のように修正する:

template_values = {
    'title': 'こんにちは、Google App Engine!'
}

path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path, template_values))

リロードしてみると、ちゃんと {{ title }} の部分が置換されていた。Using Templates - Google App Engine - Google Code を見ると、if 文や for 文なんかも使えるようなので、あとでまたやってみる。とりあえず、ここまで。