Bor*_*kov 14 python web-services middleware wsgi web-applications
你能提供一个WSGI start_response功能的真实例子吗?(Web服务器为wsgi应用程序提供该功能)
我无法理解引入的目的start_response.
(我喜欢阅读有关WSGI标准的10个相同的文本.他们都说"WSGI标准是......"他们没有说"WSGI设计这样才能 ......" :()
Aya*_*Aya 11
你能提供一个WSGI
start_response()功能的真实例子吗?
好吧,start_response()函数for mod_wsgi在2678行定义mod_wgsi.c
他们都没有说"WSGI就是这样设计的......"
对于WSGI设计的这一方面似乎没有多少理由PEP3333.浏览web-sig邮件列表档案,我发现了这条消息 ......
前段时间我反对决定从下一个版本的WSGI中删除start_response函数,理由是没有start_callable,异步扩展是不可能支持的.
现在我发现删除start_response也将无法支持协同程序(或者至少使用一些协同程序).
[...]
...开始了一个关于这部分实施的理由的长篇大论,这可能值得一读.
如果你真的想知道WSGI接口的这方面的来历,你必须阅读大量的信息的初始草案在2003年12月,和稍后草案于2004年8月.
更新
如何与其他协议兼容?
我不太清楚你的意思.忽略所有早期草案,WSGI 1.x界面可以以两种不同的方式使用.
'弃用'方法是......
def application(environ, start_response):
write = start_response(status, headers)
write('content block 1')
write('content block 2')
write('content block 3')
return None
Run Code Online (Sandbox Code Playgroud)
......而'推荐'的方法是......
def application(environ, start_response):
start_response(status, headers)
return ['content block 1',
'content block 2',
'content block 3']
Run Code Online (Sandbox Code Playgroud)
据推测,你可以使用两者,...
def application(environ, start_response):
write = start_response(status, headers)
write('content block 1')
return ['content block 2',
'content block 3']
Run Code Online (Sandbox Code Playgroud)
...但结果行为可能未定义.
根据这篇博文的看法,正在考虑的新WSGI 2.x方法是......
def application(environ):
return (status,
headers,
['content block 1',
'content block 2',
'content block 3'])
Run Code Online (Sandbox Code Playgroud)
...它消除了start_response()可调用的,显然是write()可调用的,但是没有迹象表明何时(或者甚至是)这可能取代WSGI 1.x.
| 归档时间: |
|
| 查看次数: |
8113 次 |
| 最近记录: |