アプリケーションの作成

第一章を読み終えて、とても楽しかったので、調子に乗って第二章を読み進めて行きます。

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で行ったことに (私的には) 意義があります。今後もこの調子で快適に開発することが出来そうです。