2016-02-14 35 views
0

因此,我有一個網站託管在運行django的樹莓派上。我有我的home.html,我想顯示一個由圖像組成的菜單。當圖像被點擊時,我希望他們運行一個python腳本/函數。任何人都可以幫我解決這個問題嗎?使用django從html內執行python funtion

另一方面,我不希望頁面改變。它只是一個圖像,當點擊時執行不同的代碼。

我已經設法讓代碼運行,但是當頁面加載到點擊按鈕時運行。

也許django不是這裏的答案嗎?

+1

既然你必須要逃避一個Django'view' Python代碼,並且所述視圖返回一個HTTP響應導致頁面重載,你有對視圖進行ajax調用以觸發您想要運行的任何代碼。這將使您的頁面保持不變... – schwobaseggl

+0

或JavaScript。 – Obsidian

回答

2

要在客戶端操作上執行服務器代碼,您顯然必須提出請求。

在你的情況可能是ajax請求,因爲你不需要重新加載頁面。

下面是一個Ajax請求的一個簡單的例子:

<script type="text/javascript"> 
var xhr = new XMLHttpRequest(); 
xhr.open('GET', '/yourpath', true); //will trigger http://yourdomain.com/yourpath. 
xhr.onreadystatechange = function(e) { 
    if (this.readyState == 4 && this.status == 200) { //200 means OK 
    console.log(this.responseText); //in your browser : F12 => Console. This is what the server returned. 
    } 
}; 

xhr.send(); 
</script> 
+0

謝謝你。我不認爲你可以解釋我將如何做到這一點?我需要將什麼代碼放入html中?並在哪裏我可以把我的Python代碼? – Comm4nd0

+0

你使用類似JQuery的JavaScript庫嗎? –

+0

感謝您的示例代碼,我會給它一個去!你還可以給我一個示例圖像鏈接,使用上述腳本來調用python代碼嗎? – Comm4nd0