HTML 循环中 python 程序 运行 的接口
HTML interface for a python program running in loop
我是 python 开发的新手。我有一个用于控制某些传感器 (I/O) 的程序,该程序在 While True:
.
循环中 运行
我想创建一个网页,在那里我可以看到一些值,一些来自我的程序的变量。在网上搜索,我找到了很多信息,但我不明白该怎么做:我看到很多允许监听 html 请求的 Web 框架,当我尝试时,它们基本上可以工作。
我想念如何在侦听网络请求的脚本 python 和我的 python 程序之间进行交互。我应该将 Web 侦听器创建为主程序启动的线程吗?使用某种全局变量?
从 Web 界面与 Python 脚本进行交互的一种简单的 Web 服务器方法是使用 Python bottle。
这是一个基本的 Python bottle 程序,您可以将其用于您的目的:
from bottle import route, run
@route('/')
def hello():
#using jquery
return """<script> poll get_temp with JavaScript here</script><div id="temp">temp will update here</div>"""
@route('/get_temp')
def getTemp():
temp = readDataBaseForTemp()
return temp
run(host='localhost', port=8080, debug=True)
当您启动此程序时,您可以使用浏览器在 http://localhost:8080/
上与其交互 <--- 这将触发 JavaScript 轮询服务器以获取温度。显然它并不完整,但它是总体思路。
这里的想法是 JavaScript 只是调用 Python 网络服务器(使用 URL http://localhost:8080/get_temp
)触发你的 Python myTemperatureControl 脚本.当您的脚本已执行并 returns 一个温度值时,它会将数据发送回请求它的 JavaScript,以便相应地更新网页。
至于您的 myTemperatureControl.py 脚本,您可以将温度读数的输出发送到网络服务器可以访问的公共位置。通常您会为此目的设置数据库。
while True:
if temperature > 30:
output = 1
else:
output = 0
#update database or file with output
我是 python 开发的新手。我有一个用于控制某些传感器 (I/O) 的程序,该程序在 While True:
.
我想创建一个网页,在那里我可以看到一些值,一些来自我的程序的变量。在网上搜索,我找到了很多信息,但我不明白该怎么做:我看到很多允许监听 html 请求的 Web 框架,当我尝试时,它们基本上可以工作。
我想念如何在侦听网络请求的脚本 python 和我的 python 程序之间进行交互。我应该将 Web 侦听器创建为主程序启动的线程吗?使用某种全局变量?
从 Web 界面与 Python 脚本进行交互的一种简单的 Web 服务器方法是使用 Python bottle。
这是一个基本的 Python bottle 程序,您可以将其用于您的目的:
from bottle import route, run
@route('/')
def hello():
#using jquery
return """<script> poll get_temp with JavaScript here</script><div id="temp">temp will update here</div>"""
@route('/get_temp')
def getTemp():
temp = readDataBaseForTemp()
return temp
run(host='localhost', port=8080, debug=True)
当您启动此程序时,您可以使用浏览器在 http://localhost:8080/
上与其交互 <--- 这将触发 JavaScript 轮询服务器以获取温度。显然它并不完整,但它是总体思路。
这里的想法是 JavaScript 只是调用 Python 网络服务器(使用 URL http://localhost:8080/get_temp
)触发你的 Python myTemperatureControl 脚本.当您的脚本已执行并 returns 一个温度值时,它会将数据发送回请求它的 JavaScript,以便相应地更新网页。
至于您的 myTemperatureControl.py 脚本,您可以将温度读数的输出发送到网络服务器可以访问的公共位置。通常您会为此目的设置数据库。
while True:
if temperature > 30:
output = 1
else:
output = 0
#update database or file with output