use*_*464 10 python mod-wsgi wsgi werkzeug
正如我在标题上所说,我现在对基本了解它们感到非常不舒服.
据我所知,mod_wsgi实现了可以在Apache Web服务器下运行的WSGI规范.
它用C语言编写.
另外一个,werkzeug是一种具有实用功能的工具包.我还评论过werkzeug可以运行在其源代码中实现的简单服务(serve.server在serve.py中).我知道werkzeug具有有用的功能和简单的服务器功能.
我想知道的是下面的内容.
当在Apache Web服务器下使用基于werkzeug的Flask框架时,mod_wsgi到底做了什么?
werkzeug还具有基本的http服务器功能,不需要支持mod_wsgi.
任何人都可以解释mod_wsgi和werkzeug之间的区别吗?
mod_wsgi和werkzeug从Web服务器的角度来看具有重复的功能.
gah*_*ooa 22
WSGI代表Web服务器网关接口,(主要)由PEP 333在http://www.python.org/dev/peps/pep-0333/定义.
Python社区正在努力为Web服务器建立一个与Python应用程序对话的标准机制.
理论上,任何符合wsgi的服务器(或现有Web服务器的扩展)都应该能够加载和运行任何符合wsgi的应用程序.
werkzeug是一个Web应用程序框架,可以在兼容的WSGI服务器下运行,例如Apache + mod_wsgi.它还包含一个可用于开发的内置开发服务器.
WSGI起初可能非常混乱,但实际上非常简单.WSGI规范要求您的python应用程序执行以下操作:
applicationenviron,start_response)environ 是一个环境变量字典start_response 是一个需要调用以启动响应的可调用对象一旦application被调用,它就会处理请求,构建输出,并且:
start_response('200 OK', Headers)return [content]一个简单的WSGI应用程序可能如下所示:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Run Code Online (Sandbox Code Playgroud)
强烈建议您使用现有的WSGI框架,因为解析HTTP请求,处理文件上载,编码字符等涉及很多细节......
看看Bottle,Flask,werkzeug,AppStruct等......
Jon*_*sco 13
mod_wsgi是一个兼容wsgi的python模块,它连接python和apache.它允许您在apache下运行编码为wsgi规范的应用程序.
werkzeug是一个wsgi实用程序库,用于构建符合wsgi的应用程序.它附带一个开发服务器.
有一些Python Web应用程序框架:Pyramid/Pylons,Flask,Bottle,Django,CherryPy等等.它们都实现了WSGI规范,这是用Python构建Web应用程序的事实标准(http:// en.wikipedia.org/wiki/Web_Server_Gateway_Interface)
大多数Web应用程序框架都附带一个仅调试或支持生产的Web服务器.当你有一个WSGI应用程序,你可以通过图书馆的应用服务,通过Apache通过mod_wsgi,或使用"纯" WSGI服务器一样uWSGI,gunicorn,fapws,或twisted.
我认识的大多数人都会像这样部署一个wsgi应用程序:
话虽如此,要专门回答您的问题,请阅读本文档页面的第一段 - http://werkzeug.pocoo.org/docs/serving/:
有很多方法可以为WSGI应用程序提供服务.在开发它的过程中,您通常不希望像Apache一样运行完整的网络服务器,而是一个简单的独立网络服务器.因为Werkzeug带有内置开发服务器.
出于开发原因,或在流量非常低的站点上,您只需使用Werkzeug服务器即可.如果您正在部署一个能够获得合理流量的应用程序,那么您将需要更强大的功能.
mod_wsgi或uWSGI复制Werkzeug的服务功能,但是他们这样做是因为他们可以做得更好 - 更快的响应时间,更低的内存,更好的并发性,更稳定等等.Werkzeug服务器对于许多用途来说"足够好" ,但它不是服务wsgi兼容应用程序的"最佳方式".
| 归档时间: |
|
| 查看次数: |
5387 次 |
| 最近记录: |