我很困惑。AppEngine混淆 - CGI,WSGI兼容?
如果AppEngine上應該允許WSGI-使用的應用程序的運行..
# somewhere in a webapp.RequestHandler
env = dict(os.environ.items())
for key, value in env.items():
self.response.out.write(key+': '+value+'<br/>')
req_uri = wsgiref.util.request_uri(env)
..那麼爲什麼env
不包含變量PEP 333列爲必須 -be存在的 - 導致wsgiref.util.request_uri()
籌集KeyError
?
我基本上是編寫一些需要工作AppEngine或典型的Apache + modwsgi設置的庫。我認爲只需編寫一個兼容WSGI
的應用就足夠了,但似乎AppEngine本身不是?
並注意當App Engine Python運行時獲得併發支持時,os.environ會變得特別不值得信任,因爲它可能包含來自另一線程服務請求的數據。 – geoffspear
作爲一般規則,是關於你在哪裏得到的'environ'很迂腐,PEP-333,使一些選擇,使高度併發的,WSGI服務器可能交織相互作用在同一進程的多個請求(多線程)或即使在同一個線程中(異步),儘管我知道沒有真正的服務器在做第二個,但這一事實避免了許多框架的設計,這在任何方面都不是異步安全的。 – SingleNegationElimination