前回の記事で、GAEを開発するための準備を整えました。
さっそくGAEで"Hello World."を出力するアプリケーションを開発してみることにします。
GAEで "Hello World."の記事ですが、大きくなるので3回に分けています。
第2回目は、『Google App Engine SDK for Python』のプロジェクト作成⇒ローカルでのテストまでの作業です。
eclipseでGAE for Python用プロジェクトを作成
1.パッケージエクスプローラー上で、マウスを右クリックし「新規 > プロジェクト」を選択します。
メニュー「ファイル > 新規 > プロジェクト」でも同じです。
2.「Pydev Google App Engine Project」を選択し、[次へ]ボタンをクリックします。
3.プロジェクト名、文法バージョン、インタープリターを選択し、[次へ]ボタンをクリックします。
プロジェクトタイプ | Python |
文法バージョン | 2.6 |
インタープリター |
Python2X |
文法バージョン、インタープリターについては、過去の記事「eclipseでPython開発を行ってみる」を参照してください。
現在Python3については未検証です。
4.[参照]ボタンをクリックします。
5.前回の記事でインストールした、「Google App Engine SDK for Python」をインストールしたフォルダーを指定します。
6.[次へ]ボタンをクリックします。
7.プロジェクト名、テンプレートを指定して[完了]ボタンをクリックします。
プロジェクト名は「helloworld」です。(理由は「設定ファイルの編集」で後述しています)
テンプレート名は目的次第ですが、今回は「Hello World」を選択します。
下記のようにGAE for Python用のプロジェクトが作成されます。
リクエストハンドラの編集
「eclipseでGAE for Python用プロジェクトを作成」で作成された helloworld.py を編集し、リクエストに応答し「Hello world」と出力するCGIプログラムを作成します。
といっても、最低限のソースコードはテンプレートで自動的に作成してくれていますので、中身を確認するだけです。
helloworld.py は下記内容になっています。
print 'Content-Type: text/plain' print '' print 'Hello, world!'
設定ファイルの編集
「eclipseでGAE for Python用プロジェクトを作成」で作成された app.yaml を編集します。
このファイルも既にテンプレートが作成してくれていますので、中身だけ確認します。
app.yaml は下記内容になっています。
application: helloworld version: 1 runtime: python api_version: 1 handlers: - url: /.* script: helloworld.py
※application と script で指定する名前は同じにしないとうまく動作しないようです。
設定ファイルの詳細は下記URLを参照してください。
http://code.google.com/intl/ja/appengine/docs/python/config/appconfig.html
動作確認
まずはローカルで動作確認を行います。
コマンドプロンプトで下記のコマンドを入力します。
> dev_appserver.py helloworld/
※実行時は、Pythonインタープリター、Google App Engine SDK for Python のパスを確認してください。
※helloworld/ の部分は、実際に開発を行っている helloworld.py が存在するフォルダー名を指定します。
私の環境はWindowsで、eclipseのworkspace をCドライブ直下に作成していますので「C:\workspace\HelloWorld\src」でした。
この場合のコマンドは dev_appserver.py C:\workspace\HelloWorld\src となりました。
テスト用Webサーバーが起動したら下記のURLで実際に「Hello World」が出力されることを確認します。
http://localhost:8080/
※使用するポートの変更などを行いたい場合、下記URLに詳細が記述してありますので参照してみてください。
http://code.google.com/intl/ja/appengine/docs/python/tools/devserver.html
次回の記事で実際に、GAE上で"Hello world."を出力するところまで行ってみています。そちらも参照してみてください。