有没有办法让网页在Raspberry Pi上运行python脚本?
好吧,我知道这可能听起来有点不喜欢,但我正在制作一个遥控覆盆子pi汽车通过网页供电。我已经整理了一切,除了即时通讯试图找到一种方法,使我的网站托管在PI运行Python脚本,当我点击网页中的按钮。有没有办法做到这一点?可能与图书馆? 请帮我一把。有没有办法让网页在Raspberry Pi上运行python脚本?
是的。最简单和最古老的方法是使用CGI。配置您的Web服务器,以便当它获得对特定URL的请求时(例如在单击表单后),它将执行python脚本。 CGI是通用的,因为任何可执行文件都可以运行,并且其标准输出将返回给发起请求的浏览器。 (更多或更少 - 也有一些标头添加到标准输出和)
一个RPi不够勉强可以求助于CGI,但如果你喜欢它,它是一个可行的解决方案。 – 2014-08-30 18:13:28
如果您使用的是PHP,你可以使用一个AJAX调用运行了shell_exec一个PHP页面:
的index.php:
<?php
echo '<!DOCTYPE html><html><head><meta charset="UTF-8"><script src="script.js"></script><title>Your Site Name</title></head><body>';
echo '<button type="button" onclick="run(\'yourscriptname.py\')">Run Your Script</button>';
echo '<br><div id="scriptResults"></div>';
echo '</body></html>';
的script.js:
function run(scriptName){
var xhr = new XMLHttpRequest();
xhr.open("GET", "run.php?script=" + scriptName, true);
xhr.onreadystatechange = function(){
if (xhr.readyState === 4 && xhr.status === 200){
document.getElementById("scriptResults").innerHTML += "<br>" + xhr.responseText;
}
};
xhr.send();
}
run.php:
<?php
if (isset($_GET['script'])){
echo shell_exec('python ' + $_GET['script']);
}
请注意,这是一个基本的框架,并有像过滤$ _GET输入缺少一些东西。
WSGI是Web服务器和Web应用程序之间的标准Python接口。为了解释PEP333,它等同于Java中的servlet的Python。
还有Apache module supporting wsgi。我假设,以及对于大多数其他主要的Web服务器。
对于简单的应用程序,尽管您不需要完整的Web服务器。也许你应该看看wsgi reference implementation page
的一些例子,看看python烧瓶?你是否要求轻量级的框架工作? – 2014-08-30 17:37:31