如何从网页调用python脚本

Posted

技术标签:

【中文标题】如何从网页调用python脚本【英文标题】:How to call a python script from a web page 【发布时间】:2013-07-21 13:05:33 【问题描述】:

我对 Python 和 Web 应用程序还很陌生,因此对于可能混淆的术语/关键字,我深表歉意。

我有一个运行 json-rpc 服务器的 Python 脚本,它导出设备的一些管理 API。 我编写了另一个 Python 脚本来实现 CLI 控制应用程序(使用 Python 的 cmd 模块)。一切都在 Ubuntu12.04 机器上运行。

现在,我想用一个非常简单的网页替换 CLI 应用程序(它是称为 Web 应用程序吗?还是称为 Web 服务?也许是 WSGI?还有什么?)。该页面应该提供一种调用 API 的方法,参数由用户设置,并可能显示结果。 最好的方法是什么(最短的学习曲线和最短的开发时间……)?

我是否应该编写一些 php 代码(通过搜索操作系统,这似乎是一种流行的方式)并从中调用另一个 Python 脚本? 我可以完全用 Python 来做吗(可能可以,但会很容易吗?)?

任何提示/方向/建议将不胜感激,谢谢!

【问题讨论】:

【参考方案1】:

您可以通过php运行python脚本,并在浏览器上输出。

基本上你必须这样调用python脚本:

$command = "python /path/to/python_script.py 2>&1";
$pid = popen( $command,"r");
while( !feof( $pid ) )

 echo fread($pid, 256);
 flush();
 ob_flush();
 usleep(100000);

pclose($pid);

注意:如果你在 python 代码中运行任何 time.sleep(),它不会在浏览器上输出结果。 对于完整的代码,visit How to execute python script from php and show output on browser

【讨论】:

感谢 LLingas!我认为代码片段应该放在 PHP 页面中,对吧?对于生成此类页面的工具有什么建议吗?【参考方案2】:

如果 API 和您的页面在同一台服务器上,您可以为此使用 javascript 和 ajax。用javascript编写的json-rpc库很少,list is on Wikipedia。

【讨论】:

感谢 jcubic!这需要我对 javascript 和/或 ajax 有一些了解。 Python中没有框架可以做到吗? @DgAn 您可以使用表单 (html) 创建 CGI 脚本,并响应表单(在 python 中)您可以编写代码,使用与您的 cli 脚本相同的 API。跨度>

以上是关于如何从网页调用python脚本的主要内容,如果未能解决你的问题,请参考以下文章

Android:从 Java 代码调用 Python 脚本(通过 SL4A)

如何从 python 脚本调用 *.jsl 脚本

html中调用python脚本

如何通过网页运行 Python 脚本? [复制]

如何从 python 代码调用 shell 脚本?

如何从另一个 python 脚本调用和显示 PYQT UI 脚本?