我是python开发的新手。我有一个程序来控制一些在循环While True:
中运行的传感器(I / O)。
我想创建一个网页,在那里我可以看到一些值,我的程序中的一些变量。在网上搜索,我发现了很多信息,但我不明白该怎么做:我看到很多网页框架允许听取HTML请求,当我尝试时,他们基本上都工作了。
我想念我如何在侦听Web请求的脚本python和我的python程序之间进行交互。我应该创建由我的主程序启动的线程的Web侦听器吗?使用某种全局变量?
答案 0 :(得分:1)
一种简单的Web服务器方法,您可以使用Python瓶与Python脚本进行交互。
以下是您可以用于实现目的的基本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/
上与它进行交互&lt; ---这将触发将在服务器上轮询temp的JavaScript。显然它并不完整,但这是一般的想法。
这里的想法是JavaScript只是调用Python webserver(使用URL http://localhost:8080/get_temp
)来触发你的Python myTemperatureControl脚本。当您的脚本执行并返回温度值后,它会将数据发送回请求它的JavaScript,以便相应地更新网页。
对于myTemperatureControl.py脚本,您可以将温度读数的输出发送到Web服务器可访问的公共位置。通常,您会为此目的设置数据库。
while True:
if temperature > 30:
output = 1
else:
output = 0
#update database or file with output