簡體   English   中英

按鈕執行jQuery腳本,使用jQuery的?

[英]button executes python script, using jquery?

我正在RaspberryPi上建立一個網站。 我有JustGage讀取溫度和其他傳感器,並顯示它們已經實時工作。 但是現在,我試圖創建一個按鈕,當按下該按鈕時,它會執行python腳本。

因此,這是一個簡單的按鈕:

<form method="post">
  <button id="led" name="led" checked data-toggle="toggle">▲</button>
</form>

現在,當按下此按鈕時,我想讓它執行python腳本LED.py:

import os
import smbus
import time
import datetime
import os, sys
rom datetime import datetime
import pytz
import datetime


states = open('/home/pi/Desktop/UV.txt', 'r+')
on=open('/home/pi/Desktop/on.txt', 'r+')
    os.system('sudo /drcontrol/drcontrol.py -d DAE001XA -r 3 -c state | tee /home/pi/Desktop/UV.txt')
state = states.readlines()
on = on.readlines()
state = str(state)
rstate= str(on)
    if (rstate == state):
        print ("Relay on!")
    else:
        print ("Relay Off!")

#--------------------
if (rstate != state):
    os.system('/drcontrol/drcontrol.py -d DAE001XA -r 3 -c on')
    print("on")
else:
    os.system('/drcontrol/drcontrol.py -d DAE001XA -r 3 -c off')
            print("off")

#------------------------------------------------------------------------------------
import os, sys

if os.popen('whoami').readline().strip() == 'root' :
    print( "OK, you're root")
    root = True
else:
    print( "Attention: please run as root with 'sudo'. This scripts GPIO which need root-rights.")
    print( "Now exiting ...")
    sys.exit(1)
    root = False

if __name__ == '__main__':
    main()
print ("Finished")

從終端運行時,此python腳本有效。 關閉繼電器時,它將激活繼電器,反之亦然。 但是,當在index.php頁面上按下按鈕時,如何運行此腳本? 最好使用Jquery或PHP(但我不希望頁面重新加載),但不建議使用Flask。

還是有使用Bootstrap Switch或其他方法的簡便方法? 並且,使用繼電器的當前狀態作為開關的默認位置,該狀態保存在“ /home/pi/Desktop/UV.txt”中? 是否有關於此的清晰教程?

編輯1

python腳本on.py:導入os,sys

os.system('/drcontrol/drcontrol.py -d DAE001XA -r 3 -c on')
f=open("/var/www/test.txt", a+)

index.php上的按鈕:

<button id="led">on</button>
<script>
  $("#led").click(function(){
    $.ajax({
      url:"/var/www/on.php",
    });
  });
</script>

最后是on.php:

<?php
  exec("sudo /usr/bin/python3.2 /var/www/on.py")
?>

在瀏覽器中打開php文件時,它僅顯示內容,沒有錯誤(我在.py和.php文件中都運行了chmod 777和chmod + x)。

單擊按鈕后,Chrome在開發人員模式下顯示on.php為“ GET”。 因此,該按鈕有效,但是pythonscript沒有運行。 當我使用sudo php var/www/on.php在終端中對其進行測試時,它就像一種魅力。 我還缺少什么? wwwwww-data被添加到sudo'ers中。 apache也應該在其中嗎?

您需要調用一個調用腳本的頁面,您可以設置或調用.py腳本並直接將其命中,或者您可以使用以下行創建一個php頁面

exec("python myscript.py arg1 arg2 ..."); 

然后按一下按鈕即可轉到該頁面...

這些是幾個選項,並假設服務器在樹莓派上運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM