2014-08-30 150 views
0

好吧,我知道這可能聽起來有點不喜歡,但我正在製作一個遙控覆盆子pi汽車通過網頁供電。我已經整理了一切,除了即時通訊試圖找到一種方法,使我的網站託管在PI運行Python腳本,當我點擊網頁中的按鈕。有沒有辦法做到這一點?可能與圖書館? 請幫我一把。有沒有辦法讓網頁在Raspberry Pi上運行python腳本?

+0

的一些例子,看看python燒瓶?你是否要求輕量級的框架工作? – 2014-08-30 17:37:31

回答

1

是的。最簡單和最古老的方法是使用CGI。配置您的Web服務器,以便當它獲得對特定URL的請求時(例如在單擊表單後),它將執行python腳本。 CGI是通用的,因爲任何可執行文件都可以運行,並且其標準輸出將返回給發起請求的瀏覽器。 (更多或更少 - 也有一些標頭添加到標準輸出和)

參見:http://en.wikipedia.org/wiki/Common_Gateway_Interface

+0

一個RPi不夠勉強可以求助於CGI,但如果你喜歡它,它是一個可行的解決方案。 – 2014-08-30 18:13:28

-1

如果您使用的是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輸入缺少一些東西。

+1

爲什麼使用PHP爲運行Python腳本啓動shell? – Zulu 2014-08-30 18:45:36

+0

我的解決方案不會導致頁面重新加載,併爲您提供腳本的即時輸出。它使您能夠單擊多個按鈕,即運行多個腳本而無需等待瀏覽器加載新頁面。 – Tim 2014-08-30 22:21:58

+0

@Zulu另外,提問者沒有說明他在編寫他的網頁。這就是爲什麼我的答案是以「如果你正在使用PHP」開頭的。我不明白爲什麼一個工作解決方案值得投票。 – Tim 2014-08-30 22:27:10

相關問題