メインのドキュメント ページでは、「Python 2.7 ランタイムは、下位互換性のために WSGI 標準と CGI 標準をサポートしている」と主張しています。
これは非常に明白な問題であるに違いありませんが、私には理解できません。私は Google App Engine を初めて使用し、それを使用して古い Python CGI アプリを実行しようとしています。Linux システムに SDK をインストールし、次のような app.yaml ファイルを作成しました。
application: your-app-id
version: 3
runtime: python27
api_version: 1
threadsafe: false
handlers:
- url: /.*
script: members.py
スクリプトと必要なファイルは、google_appengine フォルダー内の sms-gae というフォルダーにあります。私が走るとき
./dev_appserver.py sms-gae/
localhost:8080 にアクセスするとプログラムが実行されますが、出力はブラウザーではなくターミナル コンソールに表示されます。ブラウザには何も出力されません。通常の Web サーバー CGI 環境では、同じアプリケーションが問題なく動作します。
主な GAE ドキュメントによると、「App Engine は、リクエスト ハンドラ スクリプトが標準出力ストリームに書き込むすべてのデータを収集し、スクリプトが戻るのを待ちます。ハンドラが完了すると、すべての出力データがユーザーに送信されます。 "
GAE 開発環境のドキュメント(詳細はこちら) を確認したところ、正しくセットアップできました。CGI スクリプトの使用に関するドキュメントはかなりまばらで、インターネット上でもこの問題について何も見つけることができません。
出力は次のとおりです。
INFO 2013-10-10 23:05:55,535 sdk_update_checker.py:245] Checking for updates to the SDK.
INFO 2013-10-10 23:05:56,838 sdk_update_checker.py:289] This SDK release is newer than the advertised release.
INFO 2013-10-10 23:05:57,181 api_server.py:138] Starting API server at: http://localhost:49954
INFO 2013-10-10 23:05:57,225 dispatcher.py:168] Starting module "default" running at: http://localhost:8080
INFO 2013-10-10 23:05:57,241 admin_server.py:117] Starting admin server at: http://localhost:8000
Content-Type: text/html; charset= utf-8
[The Content-Type line comes from my script and is followed by its output]
INFO 2013-10-10 23:06:05,227 members.py:73] No userid or password supplied.
INFO 2013-10-10 23:06:05,262 module.py:599] default: "GET / HTTP/1.1" 200 -