【问题标题】:Web applications combining python and Php [closed]结合 python 和 Php 的 Web 应用程序 [关闭]
【发布时间】:2012-08-23 23:48:41
【问题描述】:

我有一个完全用通常的 html/css/javascript 和一些使用 jQuery 的附加内容编写的 Web 应用程序。 我还有一个用 python 编写的非常庞大的程序,它需要对用户在我的网络应用程序上提供的输入进行操作。 目前,我正在将 Php 的输入写入文件并在 python 中读取它以进行操作。 有没有更好的方法来实现这种同步? 此外,一旦某些用户单击提交按钮,我就需要执行我的 python 程序。如何让 python 等待这个?

【问题讨论】:

    标签: php python web-applications


    【解决方案1】:

    如果你的应用程序已经在 python 中,你为什么要用 php 编写网站后端?

    回答您的问题 - http://wiki.python.org/moin/IntegratingPythonWithOtherLanguages

    但我建议你放弃愚蠢的 php 并采用一些像 Django 这样的 python 框架并使用它来构建你的后端。如果你这样做了,那么集成你的 python 代码就是导入一个类/方法的简单问题。

    【讨论】:

      【解决方案2】:

      由于对常规文件的严重 I/O 操作,您的同步方式会产生相当大的开销,您必须处理锁,即使很小的负载增长也会导致整个系统崩溃。

      我建议您熟悉通常用于在两个进程之间交换信息的 IPC 技术:

      1. 在 Python 中有一个 subprocess 模块可以帮助您使用 PIPES 在进程之间进行通信,这比使用常规文件更可靠。 PHP 还具有popen 函数,可让您调用 python 进程并将数据传递给它以进行进一步处理(通过 PIPES)。
      2. 另一种方法是在两个进程之间从头开始构建套接字通信,其中您的 PHP 部分将是一个套接字客户端,而 Python 部分将是一个套接字服务器(将需要比以前的方式更多的工作)。
      3. 您还可以使用更好的数据排队方式进行进一步处理(我的意思是比常规文件更好),例如使用消息服务(其中有很多,RabbitMQRedis Pub/Sub 等),这些服务绝对可以从 Python 或 PHP 中使用。

      还有一些技术不在讨论范围内,但我选择了这 3 种方式来安排 IPC,因为它们是最简单且实施速度最快的。

      您可以尝试所有方法或部分方法,然后分析在您的具体情况下哪种方法最好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-31
        • 1970-01-01
        • 2011-04-24
        • 1970-01-01
        • 1970-01-01
        • 2014-11-17
        • 1970-01-01
        相关资源
        最近更新 更多