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!」と表示されます.