在PHP中嵌入Python可行吗?

2 投票
2 回答
2135 浏览
提问于 2025-04-16 19:13

我在一家小型科技初创公司工作,我们的网站是用Drupal这个内容管理系统(CMS)搭建的,Drupal是基于PHP的。不过,我会一些Python,想要开发一些网页应用,让用户可以和我们的网站互动。

我该怎么做呢?有没有人有相关的经验或者知识?有没有什么特别的模块、脚本等,可以让PHP或者Drupal调用Python?

2 个回答

4

如果你在开发一个网页应用,完全可以使用Python,并让它通过一个子域名或者Drupal没有使用的路径来访问,只需要让网络服务器指向它就行了。例如:

http://mainsite.com/ <- drupal
http://app.mainsite.com <- python web app
http://mainsite.com/python/ <- python web app

这在大多数网络服务器上都很简单。Django可能特别适合这个,它有一个很棒的功能,可以检查实时数据库,并为你生成模型

python manage.py inspect.db > models.py

这样你就可以通过Python与现有的数据库进行交互,使用一个很方便的ORM。

如果你需要在PHP页面中直接调用Python,可以使用zeromq来进行快速的进程间通信,或者建立一个简单的REST API等等。

2

有几种不同的方法可以把Drupal和外部应用程序结合起来,但最简单的方法可能就是在Drupal里安装服务模块,然后通过HTTP从你的Python应用程序发起请求,就像你和远程服务器互动一样。

还有一些其他的选择:

  • 直接和Drupal的数据库交互,这样做风险比较大,因为Drupal的数据库结构可能会因为模块升级或者配置更改而发生很大变化。
  • 把Python应用放在Drupal页面的iframe里,这样可以使用Drupal的设计风格,但功能上没有真正的结合。
  • 使用JavaScript作为Drupal和Python之间的中介,这样可以在客户端进行交互。
  • 使用命令行作为Drupal和Python之间的中介,这样可以在服务器端进行交互。这里可以用到Drush

撰写回答