Apache2: mod_wsgi还是mod_python,哪个更好?
我打算用Python写一个网络服务。但是,我发现WSGI也能做类似的事情。那我应该选哪个呢?
谢谢
巴拉
更新
我还是有点困惑。请帮帮我。
对我来说,“更好”意味着:
1. 会定期修复bug。
2. 大多数开发者都在用。
3. 可以直接支持一些额外功能,比如像AWS那样的身份验证令牌。
4. 对版本的依赖不强。(我看到WSGI需要Python 2.6)
5. 所有Python库都能直接使用。
6. 将来可以扩展。
7. 将来的升级不会出现问题。
根据我有限的经验,我希望有这些功能。可能还有一些我没想到的。
谢谢
巴拉
更新
对造成的困惑我很抱歉。我只是想在Python语言中提供一个RESTful网络服务。有没有好的框架推荐?
6 个回答
如果你只是想运行网页应用,那就用 mod_wsgi
。如果你需要为httpd的其他请求和响应阶段写一个处理程序,那就用 mod_python
。
不要把WSGI和mod_wsgi搞混。WSGI是一个接口规范,用来在服务器上托管Python网页应用。而mod_wsgi模块是用Apache这个网络服务器来实现WSGI规范的。所以说,Python和WSGI并不是完全独立的选择,WSGI只是让Python网页服务或应用和网络服务器之间能够沟通的一种方式。mod_wsgi包就是这个接口的一种实现。所以,WSGI只是达到目的的一种手段,并不是一个完整的解决方案。
个人建议你可以使用一个简单的Python框架或者不使用框架,正如Alex所说,Werkzeug是一个不错的选择。
mod_wsgi
是一个维护得更活跃的工具,而且(我听说的——我自己没有做过性能测试!)它的性能比 mod_python
更好。所以,除非你需要 mod_python
的一些独特功能,否则如果你只是想用一个网页应用框架(或者一些不算框架的工具,比如 werkzeug;-),那么选择 mod_wsgi
会更合适!现在几乎所有的 Python 网页框架,以及很多非框架的工具(我最喜欢的就是 werkzeug),都把 WSGI 作为它们和网页服务器之间的标准接口。