【发布时间】:2014-08-31 06:05:34
【问题描述】:
非WSGI方式:
def my_view(request):
request.start_response('200 OK')
request.send_header('Content-Type', 'text/plain')
request.end_headers()
request.write('Hello World!')
request.write('Goodbye World!')
request.end()
WSGI 方式:
def my_view(environ, start_response):
def generate():
yield 'Hello World!'
yield 'Goodbye World!'
start_response('200 OK', [('Content-Type', 'text/plain')])
return generate()
代码来自this blog,虽然我不太明白..
从上面可以看出,非 WSGI 看起来要容易得多。 WSGI 看起来很混乱。为什么start_reponse 必须在my_view 中传递?为什么my_view 必须返回一个迭代器? WSGI 方式中的request 对象在哪里?
有人对此有想法吗?
【问题讨论】:
-
PEP 333 一定有答案
标签: python django web cgi wsgi