结合了python和Php的Web应用程序

时间:2012-08-29 11:19:16

标签: php python web-applications

我有一个完全用通常的html / css / javascript编写的Web应用程序和一些使用jQuery的其他东西。 我还有一个用python编写的非常庞大的程序,它需要根据用户在我的web应用程序上提供的输入进行操作。 目前,我正在将Php的输入写入文件并在python中读取它以进行操作。 有没有更好的实现这种同步? 此外,我需要在用户单击提交按钮后立即执行我的python程序。我如何让python等待呢?

2 个答案:

答案 0 :(得分:3)

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

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

  1. 在Python中有一个subprocess模块,可以帮助您使用PIPES进行流程之间的通信,这比使用常规文件更可靠。 PHP还有popen函数,允许你调用python进程并将数据传递给它进行进一步处理(通过PIPES)。
  2. 另一种方法是在两个进程之间从头开始构建套接字通信,其中PHP部分将是套接字客户端,Python部分将是套接字服务器(将需要更多以前的工作方式)。
  3. 您还可以使用更好的方法对数据进行排队以进行进一步处理(我的意思是比常规文件更好),例如使用消息服务(有很多,RabbitMQRedis Pub/Sub等),这些服务绝对可以使用Python或PHP。
  4. 还有一些技术被排除在范围之外,但我选择了这三种方式来安排IPC,因为它们是最简单和最快的实现方式。

    您可以尝试所有这些或某些内容,并分析在特定情况下最佳方式。

答案 1 :(得分:-2)

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

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

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