我最近学过Python。我喜欢它。我只是想用它进行Web开发。这种想法引起了所有的麻烦。但我喜欢这些麻烦:)
来自PHP世界,只有一种方式标准化。我期待同样的搜索python&阿帕奇。
Setting up Python on Windows/ Apache?说
远离mod_python。一个常见的 误导性的想法是mod_python是 像mod_php,但对于python。那是 不是真的。
那么什么相当于python中的mod_php?
我对这一个How Python web frameworks, WSGI and CGI fit together
几乎无需澄清 CGI,FastCGI和SCGI是语言无关的。您可以用Perl,Python,C,bash甚至Assembly :)编写CGI脚本。所以,我猜mod_cgi
,mod_fastcgi
,mod_scgi
是他们对应的apache模块。正确?
WSGI是一种优化/改进的内容,是一种专门为python语言设计的高效版本。为了使用这个mod_wsgi
是一种方法。对?
这遗漏了mod_python
。那是什么?
Apache - > mod_fastcgi - > FLUP(通过CGI协议) - > Django(通过WSGI协议) Flup是使用wsgi运行任何可以说FCGI,SCGI或AJP的网络服务器的另一种方式
什么是FLUP?什么是AJP? Django是如何进入画面的?
这些问题引发了关于PHP的问题。它是如何运行的?它使用什么技术? mod_php& mod_python有什么区别?
将来如果我想使用Perl或Java,那么我是否会感到困惑?有人可以清楚地解释一下并给出完整图片。
答案 0 :(得分:10)
将Python应用程序部署到Web的标准方法是通过WSGI。这些天没有理由使用其他任何东西。
mod_wsgi是支持WSGI的Apache模块。其他Web服务器的WSGI模块名称也不同。
答案 1 :(得分:7)
Python世界中没有完全等同于mod_php。
答案 2 :(得分:4)
mod_python是mod_php最接近的等价物,但这并不意味着mod_python将满足您的需求。对于每种编程语言,您必须枚举所有可能的选项并选择您需要的选项。
对于PHP,你有mod_php和mod_cgi,但是从这两个mod_cgi几乎在所有方面都低于mod_php所以人们通常会选择后者。 (有一些替代方案,如suphp,如果你需要更多安全性等)。
对于Python,你有mod_cgi,它会在你每次发出请求时运行python解释器。 Mod_python反而嵌入了python,所以它通常更快更简单,但是对于大型项目或使用框架的项目(如DJango),你可能会想要使用mod_wsgi,因为它是最资源友好的。
对于ruby,你也可以选择使用mod_cgi,但这太慢了。 mod_ruby也是一个选项,但仅适用于小程序。 mod_fastcgi通常是rails / merb和其他基于ruby的Web框架的选项,但它们被mod_rails和mod_rack取代,它们是esource友好的。但对于简单的脚本,后者有点太重了。
对于mono(asp.net),你有mod_mono,这通常是唯一的选择。
对于java,您通常运行单独的Tomcat / Jetty Web服务器,并使用mod_proxy。
当然,运行单独的Web服务器并使用mod_proxy通常是所有Web框架的选项,尽管它主要适用于开发过程。对于生产环境,您必须选择最合适的选项(对资源最友好的选项)您的框架(django,rails,asp.net等)需要
答案 3 :(得分:2)
mod_python
与mod_php
最相似(即它尝试做所有事情)。这不一定是好事,我不建议今天将应用程序写入本机mod_python接口。
WSGI是一种优化/改进的内容,是专为python
设计的高效版本
不同之处在于WSGI是在Python语言本身中定义的:它指定了代码将接收的对象和值。 [S | Fast] CGI更关心线路上的字节。
通过将应用程序编写到WSGI标准(直接或使用支持它的框架),您可以解决应用程序编写和部署的问题。
为了使用这个mod_wsgi是一种方法。对?
这是 的方式,对于Apache用户来说绝对是一个不错的选择,但远非唯一的用户。写入WSGI,您可以在各种环境中进行部署,包括[S | Fast] CGI和mod_python。