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 文なんかも使えるようなので、あとでまたやってみる。とりあえず、ここまで。