2013-07-21 254 views
3

我对Python和Web应用程序非常陌生,所以我对可能的术语/关键字混淆表示歉意。如何从网页调用python脚本

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

现在,我想用一个非常简单的网页替换CLI应用程序(称为Web应用程序?还是Web服务?也许WSGI?别的?)。该页面应该提供一种调用API的方法,用户可以设置参数,并可能显示结果。 要继续进行的最佳方式(最小学习曲线和最短开发时间...)是什么?我应该写一些PHP代码(从搜索操作系统,它似乎是一种流行的方式),并从它调用另一个Python脚本? 我可以用Python完成吗(可能是的,但会很容易吗?)?

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

回答

10

您可以通过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

+0

谢谢LLingas!我认为代码片段应该放在一个PHP页面中,对吧?任何建议的工具来生成这样一个页面? – DgAn

0

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

+0

谢谢jcubic!这将需要我有一些JavaScript和/或AJAX的知识。 Python中没有框架来做到这一点吗? – DgAn

+0

@DgAn您可以使用表单(html)创建CGI脚本,并且为了响应表单(在python中),您可以编写将使用与cli脚本相同的API的代码。 – jcubic