2012-05-09 17 views
3

次のコードは、以下のログに示すようにWSGIの代わりにCGIメソッドを生成します。これはdevサーバー上のWSGIアプリケーションの通常の実行ですか?アプリケーションをWSGIとして実行するには、何を変更する必要がありますか?Python 2.7 App EngineでWSGIの代わりにCGIとして実行するアプリケーション

main.py

import webapp2 
import wsgiref.handlers 
import logging 
from google.appengine.api import users 


class HomeHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.out.write("Hi World") 

app = webapp2.WSGIApplication([ 
    (r'/', HomeHandler), 
], debug=True) 

app.run() 

app.yamlを

application: WSGITEST 
version: 1 
runtime: python27 
api_version: 1 
threadsafe: yes 

libraries: 
- name: webapp2 
    version: latest 

handlers: 
- url: /.* 
    script: main.app 

ログイン

DEBUG 2012-05-09 21:31:14,921 dev_appserver.py:656] Matched "/" to CGI dispatcher with path main.app 
DEBUG 2012-05-09 21:31:14,926 dev_appserver_import_hook.py:1246] Enabling webapp2: None 
DEBUG 2012-05-09 21:31:14,928 dev_appserver.py:1624] Executing CGI with env: 
{'REQUEST_ID_HASH': '77DE68DA', 'SERVER_SOFTWARE': 'Development/1.0', 'SCRIPT_NAME': '', 'REQUEST_METHOD': 'GET', 'PATH_INFO': '/', 'SERVER_PROTOCOL': 'HTTP/1.0', 'QUERY_STRING': '', 'CONTENT_LENGTH': '', 'USER_ID': '', 'APPENGINE_RUNTIME': 'python27', 'TZ': 'UTC', 'SERVER_NAME': 'localhost', 'REMOTE_ADDR': '127.0.0.1', 'SDK_VERSION': '1.6.5', 'PATH_TRANSLATED': '/home/bear/dev/appengine/code/ae-baseapp/401/main3.app', 'SERVER_PORT': '8080', '_AH_THREADSAFE': '1', 'CURRENT_VERSION_ID': '1.1', 'USER_ORGANIZATION': '', 'HTTP_USER_AGENT': 'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0', 'HTTP_HOST': 'localhost:8080', 'HTTP_CONNECTION': 'keep-alive', 'USER_EMAIL': '', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'APPLICATION_ID': 'dev~WSGITEST', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT_LANGUAGE': 'en-us,en;q=0.5', 'HTTP_DNT': '1', 'CONTENT_TYPE': 'application/x-www-form-urlencoded', '_AH_ENCODED_SCRIPT_NAME': '/', 'AUTH_DOMAIN': 'gmail.com'} 
INFO  2012-05-09 21:31:14,933 dev_appserver.py:2891] "GET/HTTP/1.1" 200 - 
+0

あなたにあなたのSDKを実行しますか?このコードをコピーしてコピーすると、CGI – aschmid00

答えて

3

このログは、ハードコードの文字列です:

/usr/local/google_appengine/google/appengine/tools/dev_appserver.py: 
1622  sys.modules['__builtin__'] = __builtin__ 
1623 
1624:  logging.debug('Executing CGI with env:\n%s', repr(env)) 
+0

私はWSGIとCGIをログに記録すると仮定していました。 –

1

まずそれはincorrectだから、あなたは、このコード行を削除する必要があります。

app.run() 

私のコメントに書いてあり、aschmid00が指摘しているように、古いデバッグステートメントになる可能性があります。

+0

で実行されていることを確認できる行が表示されません。スレッドセーフを有効にしてpy27で実行すると、app.run()に影響はありませんが、間違っている可能性があります。 – aschmid00

+1

私は間違っています。実際にコードを2回実行します。 – aschmid00

+0

@ aschmid00 'dev_appserver.py 'を実行してDEBUGの出力を取得します。 --debug' //コードが2回実行されているとは思えません。これは、Hi Worldのレスポンスを作成すると同時に1つのHi Worldになります。 –

関連する問題