Google App Engineでもうちょっとがんばってみる:メール送信プログラム
白石俊平
2008/04/11 18:00
Google App Engineの基礎を学んだところで、もうちょっと発展的なプログラムを組んでみよう。
テンプレートの利用
前回行ったように、レスポンス本文をスクリプトに埋め込むのは、読み易さや保守性の点から見ると問題がある。やはりWebアプリケーションであれば、HTMLベースのテンプレートを使用したいところだ。
App Engineのwebappモジュールには、開発者の利便性を考えてDjangoのテンプレートエンジンが同梱されている。今回のアプリケーションに置ける画面作成は、同テンプレートエンジンを使用している。ソースコードを見てみよう。
まず、テンプレートを利用する側のソースコードだ。
# (1) テンプレートファイルへのパスを作成
path = os.path.join(os.path.dirname(__file__), 'response.html')
# (2) テンプレートの書き出し
self.response.out.write(
template.render(path, {'username':user.nickname()}))
(1) スクリプトのソースファイル(__file__)のパスからディレクトリ部分だけを抜き出し、テンプレートファイル名(response.html)と結合することで、テンプレートファイルの絶対パスを作成している。
(2) テンプレートをパースしているのがこの部分。google.appengine.ext.webapp.templateモジュールのrender()関数を用いる。render()の第一引数はテンプレートファイルのパス、第二引数はテンプレートに渡す引数だ。ここでは、ユーザの表示名を"username"と言うキーにひも付けている。
テンプレートファイル(response.html)の内容は以下。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>メール送信サンプルにようこそ!</title>
</head>
<body>
こんにちは、{{username|escape}}さん!メールはしっかり送らせていただきました!
</body>
</html>
usernameの値を、HTMLエスケープして表示している部分がキモだ。テンプレートの書式を詳しく知りたければ、Djangoテンプレートのドキュメントを参照していただきたい。
- 特集: Google App Engine詳解 (3件)
- 昨日のトップ記事
- 2日前
- 3日前
- 4日前
- 5日前
- ホワイトペーパー
- 話題のタグ
HTML
リファレンス
Windows
イロハ
RIA
Webデザイン
iPhone 3G
Off Topic
SOA
フレームワーク
Adobe
server
入門
Mac OS X
Ruby
Google
Internet Explorer
Safari
Database
開発環境
Opera
Firefox
Microsoft
Java
Webアプリケーション開発
CSS
Eclipse
オープンソース
Apache
Python
iPod touch
Tips
Linux
小技
Apple
CSS 3
Flash
PHP
iPhone
Leopard
JavaScript
Ajax
Solaris
ライブラリ
C/C++
Firefox 3
Mozilla
ブラウザ
XHTML
仮想化
話題のタグを見る »
より多くのコスト削減に向けて、BEAの効果的なアプローチをご紹介いたします。詳しくはホワイトペーパーをご覧ください。
動画再生耐久レース―フル充電からどれだけ耐えた?
心当たりありませんか--あなたの上司がイヤがる5つの話し方
フォームデザイン虎の巻:複数の選択肢を提供する
フォトレポート:技術サポートの悪夢
無料の「Oracle Database XE」で高速バッチ処理:実装のポイント
Firefoxで情報をカンタン・ベンリに整理する
iPhone Safari、Acidテストでは高得点でも…… Firefoxは載らないの?:WebサイトのiPhone 3G対応問題を考える(ソフト編)
WebサイトのiPhone 3G対応問題を考える(ハード編)
フォトレポート:時代を振り返る--「MS-DOS 4」のインストール
SOAと仮想化の関係は?--常に進化を続けるBEAのミドルウェア戦略
ウェブ開発の生産性はどうしたら上がる?--MODIPHI Appsで半日で作るマッシュアップサイト(1)
JailBreakついに:PwnageTool公開
プロジェクトの進行でよくある4つのトラブル
Techno Exchange
ZDNet Japan Green IT
ZDNet Japan ホスティング特集
DELLが掲げる「新・仮想化アセスメントサービス」