结合python和Php的Web应用程序


Web applications combining python and Php

我有一个完全用常见的html/css/javascript编写的web应用程序,以及一些使用jQuery的附加内容。我还有一个用python编写的相当大的程序,它需要根据用户在我的网络应用程序上提供的输入进行操作。目前,我正在将Php的输入写入一个文件,并用python读取它来进行操作。有更好的方法来实现这种同步吗?此外,我需要在一些用户单击提交按钮后立即执行我的python程序。我该如何让python等待这个?

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

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

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

也有一些技术被排除在范围之外,但我选择了这三种方式来安排IPC,因为它们是实现中最简单、最快的。

你可以尝试所有或一些,并分析在你的特定情况下什么是最好的方法。

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

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

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