1
這裏是我的類:爲什麼我不需要在符合WSGI的應用程序中傳遞所需的2個位置參數?
class App(object):
def __init__(self, environ, start_response):
self.environ = environ
self.start_response = start_response
self.html = \
b"""
<html>
<head>
<title>Example App</title>
</head>
<body>
<h1>Example App is working!</h1>
</body>
</html>
"""
def __call__(self):
self.start_response("200 OK", [("Content-type", "text/html"),
('Content-Length', str(len(self.html)))])
return [self.html]
然後我運行它:
app = App()
我在Apache的錯誤日誌中得到一個類型錯誤(顯然):
TypeError: __init__() missing 2 required positional arguments: 'environ' and 'start_response'\r
的問題是我看到的每一個例子,他們只是不通過這些論點... This one for example:
class Hello(object):
def __call__(self, environ, start_response):
start_response('200 OK', [('Content-type','text/plain')])
return ['Hello World!']
hello = Hello() # ?????????????
我該如何傳遞這些參數並避免類型錯誤,如果每個示例都省略它們?
你加ENVIRON和start_response到__init__ - 爲什麼?查看您鏈接的頁面上的下一個示例,以瞭解編寫__init__的示例。 –