【问题标题】:Web programming: Apache modules: mod_python vs mod_phpWeb 编程:Apache 模块:mod_python 与 mod_php
【发布时间】:2010-05-19 07:36:07
【问题描述】:

我已经在我的网站上使用 PHP 和 Apache(又名 mod_php)超过 12 年了 开发工作。我最近发现了 python 及其真正的力量(我仍然不明白为什么它并不总是成为最著名的最好产品)。 我刚刚为 Apache 发现了 mod_python。我已经用谷歌搜索但没有成功,比如mod_python vs mod_php。我想知道mod_phpmod_python 这两个在以下方面的区别:

  • 速度
  • 生产力
  • 维护 (我知道`python 是世界上最高效和可维护的语言,但使用 Apache 进行 Web 编程也是如此)
  • 功能的可用性,例如 cookie 和会话处理、数据库、协议等。

【问题讨论】:

    标签: apache mod-python mod-php


    【解决方案1】:

    我的理解是 PHP 的设计考虑了 Internet/Web,但 Python 是为了更通用的目的。

    现在大多数人都离开 mod_python 转而使用更健壮和灵活的 mod_wsgi。

    回答其他问题:

    • 速度:python 更快。 (PHP 比 ruby​​ 和 python 都慢)
    • 生产力:至少与具有众多库的 php 相同
    • 维护:python清晰整洁
    • 功能:比你需要的更多,我想说。

    Python 在网络上并不流行,因为它根本不专注于网络。它有太多的 Web 框架(比编程语言更多的框架),所以社区没有 Ruby on Rails 强大。

    【讨论】:

    • 应该注意,mod_python 带有自己的迷你框架,而 mod_wsgi 没有。不幸的是,mod_python 这样做让许多人认为它使事情正常运行(如使用 PHP)具有较低的障碍,而使用 mod_wsgi 您将需要安装单独的框架或工具包。如今,人们会发现这些单独的 WSGI 框架和工具包比 mod_python 提供的要好得多,因此让它们运行的​​额外工作非常值得。
    • 我用了一段时间的 mod_python。我记得它和php的工作方式很相似,只是写.py文件来生成html页面,但不能混用。 (我可能把它和 cgi 搞混了)
    • mod_python 包提供了不同级别的抽象和做事方式。你所说的就像 mod_python.publisher 处理程序。它还支持任意资源的低级处理程序以及允许在 HTML 中使用 Python 代码(如 PHP)的 PSP。
    • 在我看来 mod_wsgi 是一个与 python 框架“对话”的模块,所以这与 mod_python 的原理不同,mod_python 没有框架,只有一个 .py 文件(至少)是必需的。我说的对吗?
    • 我认为这个答案是一个很好的答案,谢谢,问候,
    【解决方案2】:

    我想知道mod_php和mod_python这两个的区别...

    PHP 在 Internet 主机上的使用范围比 Python 更广泛。

    我在我的一个 Python 网站上注意到,如果我是第一个使用 Python 的用户,在该 Internet 主机上,Python 服务的启动时间可以以分钟为单位进行测量。大多数人不会等待几分钟来弹出网页。

    Python 具有与 PHP 相同的 Web 功能(cookie、会话处理、数据库连接、协议)。

    【讨论】:

    • 你是如何配置你的python网站的?很可能,导入模块需要时间。 Python web 应用程序是一个长期运行的过程,所以如果它已经启动它应该会非常快。
    • 该应用程序不一定是一个长时间运行的进程,在最坏的情况下可能是 CGI,这意味着它会在每个请求时加载。对于持久进程系统,通常默认的延迟加载会导致对应用程序的第一次请求很慢,但如果需要几分钟,那么它更多地与应用程序有关,而不是托管机制。一些托管机制允许您预加载代码,因此这不是问题。换句话说,托管机制的选择和/或没有以最佳方式配置它似乎是错误的选择。胖 Python Web 应用程序也无济于事。
    • 是的。花了这么长时间才启动 Python 服务。一旦它们启动,Python 就相当快了。我的网站不是一个非常受欢迎的网站,所以我不能说一个繁忙的 Python 网站与繁忙的 PHP 网站相比表现如何。
    • 你的意思是像 mod_wsgi 这样的不活动超时?然后从空闲状态唤醒应用程序很慢。但这是一种在共享主机上为许多低流量网站节省 RAM 的方法。
    • 您不能概括它并说原因是“Python”,它实际上是您选择使用的特定胖 Python 应用程序和/或框架。如果您要使用 hello world 应用程序或轻量级框架,则启动时间应该是微不足道的并且不引人注意。我虽然听说过 TurboGears 的加载时间特别长,但那是因为它在其基础安装中导入了如此多的 Python 模块,即使没有使用。如果您在自己的代码中在启动时执行耗时且阻塞的操作,那也会导致问题。
    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多