アプリケーションの作成
第一章を読み終えて、とても楽しかったので、調子に乗って第二章を読み進めて行きます。
SDKのセットアップ
私はすでにSDKをセットアップしているので、読むだけ読みました。一応Java版のセットアップにも目を通しました。本書ではPythonに関してはコマンドラインもしくはGoogle App Engine Launcherを使って開発しますが、私はEclipse + PyDevを使って開発していきます。
アプリケーションの開発
準備が整ったところで早速Webアプリケーションを作成していきます。
ユーザプリファレンスパターン
これから作りアプリケーションは現在時刻表示アプリケーションです。ここで利用するサービスはこんな感じ
- メモリキャッシュ
- データストア
- Google Accounts
ユーザ (Google Account) とタイムゾーンの設定を関連付けて保存しておくわけです。メモリキャッシュは使ったことがないので楽しみです。
Pythonアプリケーションの開発
Eclipse + PyDevでアプリケーションを作成する場合、まずワークスペースのディレクトリを作成します。
% mkdir tutorial % ls google_appengine/ projects/ tutorial/
今回はtutorialというディレクトリをワークスペースにします。そしてこのワークスペースをEclipseで開きます。その後プロジェクトを作成します。プロジェクトの種類はPyDev Google App Engine Projectです。
次にプロジェクトの名前と文法バージョンを設定します。今回は
プロジェクト名 | 文法バージョン |
---|---|
clock | 2.5 |
としています。次にApp Engineインストール先のパスを設定します。Selection neededというダイアログが表示さたら、そのままOKとします。
そしてFinishを選択するとApp Engine用プロジェクトの出来上がり。でもまだ終わりではありません。Eclipse上でデバッグ用Webサーバを起動する設定が必要です。Run > Debug configurations...を選択します。
PyDev Google App Runを左ペインで選択したらNewボタンを選択してデバッグ設定を追加します。そこで以下の用に設定します。
Name | Project (Main) | Main Module (Main) | Program arguments (Arguments) |
---|---|---|---|
App Engine Dev Server (任意) | clock | dev_appserver.pyのフルパス | ${project_loc}/src |
これで設定は終了です。それでは実際にコードを作成していきます。まずはsrcフォルダの下にapp.yamlファイルを作成します。
application: clock version: 1 runtime: python api_version: 1 handlers: - url: /.* script: main.py
だいたい分かりますよね。ここで特に重要なのがhandlers。「/.*」という正規表現 (つまり全てのURL) はmain.pyというPythonスクリプトに処理させる、という指定がされています。次にアプリケーションの本体であるmain.pyを作成します。作成するフォルダはapp.yamlと同じsrcフォルダです。
import datetime print 'Content-Type: text/html' print '' print '<p>The time is: %s</p>' % str(datetime.datetime.now())
とっても単純なスクリプトです。現在時刻をHTTPレスポンスの最低限のフォーマットで返しています。ファーストサンプルはこれで終了です。早速動かしてみましょう。Debug Configurations...から先ほど作成したデバッグ設定を選んでDebugを選択します。
Consoleでサーバが起動したことを確認したら、ブラウザで動作を確認します。
何とも寂しい限りです。そしてとっても単純なプログラムです。でもこれをEclipse + PyDevで行ったことに (私的には) 意義があります。今後もこの調子で快適に開発することが出来そうです。