Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在html中使用python函数_Javascript_Python_Html_Bus_Knx - Fatal编程技术网

Javascript 在html中使用python函数

Javascript 在html中使用python函数,javascript,python,html,bus,knx,Javascript,Python,Html,Bus,Knx,首先,我不是以英语为母语的人,所以请原谅我可能犯的任何拼写错误 我正在尝试集成HTML和Python来创建一个可以与总线“对话”的GUI(如果您感兴趣,可以使用KNX总线) 我有一个带有HTML页面的树莓pi和一些Python脚本,它们实际上是与总线对话的脚本。我已经设法用一点PHP从HTML运行python脚本(我对PHP不是特别精通),这样做: if (isset($_POST ['button'])){ exec("sudo pathofpythonscript/pythonscri

首先,我不是以英语为母语的人,所以请原谅我可能犯的任何拼写错误

我正在尝试集成HTMLPython来创建一个可以与总线“对话”的GUI(如果您感兴趣,可以使用KNX总线)

我有一个带有HTML页面的树莓pi和一些Python脚本,它们实际上是与总线对话的脚本。我已经设法用一点PHP从HTML运行python脚本(我对PHP不是特别精通),这样做:

if (isset($_POST ['button'])){
   exec("sudo pathofpythonscript/pythonscript.py")
}
它工作得很好,当按下按钮时,脚本就会被执行。但是现在,我想让一个脚本运行(因为我想让python从总线上读取UART并显示该信息),并且当脚本中发生某些事情时(例如,满足某个条件),我想能够与HTML对话以更改CSS属性或任何其他内容,类似于这里的伪代码

//This is just pseudo-code to try to illustrate my question, IT'S NOT working code
//In the python file, a simple toggle function
if bus_event
  var != var

//in Html, with javascript
if (var_from_python_script == true){
document.getElementById('button').style.background=red;
}
如果有人能告诉我如何制作一个简单的例子,比如python脚本,它可以切换任何输入和返回的布尔参数,以及如何从javascript/HTML返回的“抓取”来使用它

我想我可以做其他的事情


提前谢谢你

您混淆了浏览器中运行的HTML/CSS/Javascript代码和服务器上运行的(PHP/Python)代码。即使在你的情况下,它们可能是一样的,这也没关系。python脚本未在浏览器中运行,因此无法更改html/css甚至javascript的状态

当您使用exec执行代码时,PHP服务器正在运行一个外部命令,并期望立即请求得到响应。在那之后,一切都结束了

我建议抛弃PHP,使用Python web应用程序框架。烧瓶,Django或其他任何东西。这将允许您直接与python代码交互。然后,您的web浏览器可以向服务器请求数据,并知道发生了什么。记住,web通常只从浏览器到服务器


现在,如果您需要实时交互,您应该看看WebSocket。这将允许您的浏览器和正在运行的python应用程序之间进行双向通信。这项技术有许多警告,但它可能更适合您的需要。请注意,这将迫使您在浏览器中编写Javascript代码来管理此通信,但这应该不会太难。

因此,为简单起见,假设我有两个pyhton函数,一个用于编写,另一个用于从总线读取。如果我使用Django或任何其他web应用程序框架,我是否能够使用“类似Arduino”的代码结构,在这种结构中,我可以检查总线上的事件(使用read函数),并使用write函数与总线交互?我对实时交互不感兴趣,就像我们在电力电子中使用的交互一样,我只希望UI中显示的变量有一个合理的刷新率。谢谢你的回答