Google App Engine/Python でサブディレクトリ内のスクリプトを呼び出して実行する方法です.
アプリケーション用のディレクトリとして,helloworld ディレクトリがあり,その中のサブディレクトリ subdir の中にある helloworld.py のコードを http://○○○/hello/ というURLで呼び出したいとします.
helloworld.py は特に変わったことをする必要はありません.
例えば以下のようなコードだとします.
webapp2.WSGIApplication のところでURLと一致するように注意してください( '/hello/' の部分).
|
1 2 3 4 5 6 7 8 |
import webapp2 class MainPage(webapp2.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.response.write('Hello, World!') application = webapp2.WSGIApplication([('/hello/', MainPage),], debug=True) |
helloworld ディレクトリ内に app.yaml ファイルを以下のように作成します.
|
1 2 3 4 5 6 7 8 9 |
application: your-app-id version: 1 runtime: python27 api_version: 1 threadsafe: true handlers: - url: /hello/.* script: subdir.helloworld.application |
次に,サブディレクトリ subdir 内に __init__.py ファイルを作成します.
このファイルの中身は空で構いません.
以上で準備は終了です.
Google App Engine SDKを用いて,ローカルでテストしてみます.
helloworld ディレクトリのひとつ上のディレクトリで以下を実行します.
このとき,dev_appserver.py コマンドのある場所へPATHを通しておくか,dev_appserver.py コマンドをフルパスで実行してください.
|
1 |
$ dev_appserver.py helloworld/ |
ブラウザで http://localhost:8080/hello/ にアクセスすると,「Hello, World!」と表示されます.
問題なければ,Google App Engine SDKを用いて,コードをアップロードすれば終了です.
アップロード後,ブラウザで http://[アプリケーションID].appspot.com/hello/ にアクセスすると,「Hello, World!」と表示されます.