gpt4 book ai didi

javascript - 按钮执行Python脚本,使用jquery?

转载 作者:行者123 更新时间:2023-11-28 06:49:32 28 4
gpt4 key购买 nike

我正在 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.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”。因此,按钮可以工作,但 python 脚本没有运行。当我使用 sudo php var/www/on.php 在终端中测试它时,它就像一个魅力。我还缺少什么? wwwwww-data 已添加到 sudo 中。 apache 也应该在其中吗?

最佳答案

您需要调用一个页面来调用您可以设置的脚本 或者调用 .py 脚本并直接点击它,或者您可以使用类似

的行创建一个 php 页面
exec("python myscript.py arg1 arg2 ..."); 

按下按钮即可转到该页面...

这些是几个选项,假设服务器在树莓派上运行

关于javascript - 按钮执行Python脚本,使用jquery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33087206/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com