GoogleAppEngineでHelloWorld
今回は、Google App Engineの使い方の練習もかねて、ちゃんと「Hello World」をやります。
PythonでHelloWorldを表示の時のように、半分ネタでやる訳ではありません。
GAEプロジェクトの作成
GAEプロジェクトとは、プログラムに必要とされる各種のファイルなどをひとまとめにしたものです。GAEサイトに登録したアプリケーションは、このプロジェクト単位で作成されます。
GAEがインストールされているフォルダ(デフォルトは\C:Program Files\Google\google_appengine)を開くと、以下のファイルが用意されています。
- demos……デモプログラム
- google……Googleから提供されているプログラム類
- lib……ライブラリファイル類
- new_project_template……新規プロジェクトのテンプレート
- templates……Webアプリケーション用のテンプレート
- tools……ツールプログラム類
新規にプロジェクトを作成する場合、「new_project_template」をコピーして使います。フォルダ名は、プロジェクトが区別できるように別名をつけてください。
コピーして作成したプロジェクトファイルを開くと、3つのファイルがあるはずです。
app.yamlの修正
app.yaml
application: new-project-template version: 1 runtime: python api_version: 1 handlers: - url: .* script: main.py
application:アプリケーション名
version:バージョン
runtime:ランタイム名(Pythonの場合はPython)
api_version:アプリケーションのバージョン番号。
handlers:リクエストされたURLと実行するプログラムをハンドリングするハンドラ。「-url:」として追記していく。
script:そのURLにアクセスされた時に実行するスクリプト。
ここでは、まず「application:」に自分のアプリケーション名を設定します。
main.pyについて
main.py(コメント分は省略)
from google.appengine.ext import webapp from google.appengine.ext.webapp import util class MainHandler(webapp.RequestHandler): def get(self): self.response.out.write('Hello world!') def main(): application = webapp.WSGIApplication([('/', MainHandler)], debug=True) util.run_wsgi_app(application) if __name__ == '__main__': main()
main.pyについては、少し説明しておきます。
from google.appengine.ext import webapp from google.appengine.ext.webapp import util
最初の2行「from 〜 import 〜」で、指定したモジュールをインポートしています。
インポートしているモジュールの内容については、ここでの説明は割愛します。
class MainHandler(webapp.RequestHandler): def get(self): self.response.out.write('Hello world!')
MainHandlerクラスの定義です。このクラスは、RequestHandlerクラスを継承して作られています。
「get」メソッドが定義されていますが、HTTPのGETメソッドで呼び出された時の処理を記述します。
def main(): application = webapp.WSGIApplication([('/', MainHandler)], debug=True) util.run_wsgi_app(application)
Pythonから直接実行された場合のmain関数を定義しています。
webappフレームワークを使って、MainHandlerクラスの内容を実行しています。
if __name__ == '__main__': main()
これは、実行しているモジュールが'__main__'だった場合にmain関数を実行すると言う構文です。
プロジェクトの実行
GAEには簡易サーバー機能が用意されています。
コマンドプロンプトを起動し、プロジェクトフォルダがある場所へ移動します。
そこで、以下のコマンドを実行します。
dev_appserver.py プロジェクトフォルダ名
これで、簡易サーバーが起動します。
ブラウザから、「http://localhost:8080」と言うアドレスにアクセスしてください。