循环中运行的python程序的HTML接口

时间:2015-01-25 23:08:51

标签: python process webserver

我是python开发的新手。我有一个程序来控制一些在循环While True:中运行的传感器(I / O)。

我想创建一个网页,在那里我可以看到一些值,我的程序中的一些变量。在网上搜索,我发现了很多信息,但我不明白该怎么做:我看到很多网页框架允许听取HTML请求,当我尝试时,他们基本上都工作了。

我想念我如何在侦听Web请求的脚本python和我的python程序之间进行交互。我应该创建由我的主程序启动的线程的Web侦听器吗?使用某种全局变量?

1 个答案:

答案 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