我正在尝试让一组 python 脚本向一组微控制器报告它们的状态。
所以我的想法是让python脚本每个都创建自己的网页,可以由微控制器查看,但无论如何都要让脚本本身保持页面服务,即一个apache库,这样如果脚本崩溃或如果脚本未运行,则不提供页面或使页面具有默认值的方法。
我正在尝试让一组 python 脚本向一组微控制器报告它们的状态。
所以我的想法是让python脚本每个都创建自己的网页,可以由微控制器查看,但无论如何都要让脚本本身保持页面服务,即一个apache库,这样如果脚本崩溃或如果脚本未运行,则不提供页面或使页面具有默认值的方法。
您可以使用http://docs.python.org/library/simplehttpserver.html或一些最小的 http 服务器框架,如http://flask.pocoo.org/或http://www.cherrypy.org/。
如果您想向您的微控制器提供“实时”信息,还可以查看彗星式长轮询请求。您基本上会一直下载“页面”并将其作为数据流进行分析,而服务器会不断在“页面末尾”添加更新的信息。
你也可以看看twisted.web
一个非常基本的例子:
from twisted.web.server import Site
from twisted.web.resource import Resource
from twisted.internet import reactor
class StatusPageResource(Resource):
isLeaf = True
def __init__(self, param1):
self.param1 = param1
# Call the constructor of the super class
Resource.__init__(self)
def render_GET(self, request):
return "<html><body>%s</body></html>" % self.param1
my_res = Resource()
my_res.putChild('GetStatusPage1', StatusPageResource(param1='abc'))
my_res.putChild('GetStatusPage2', StatusPageResource(param1='xyz'))
factory = Site(my_res)
reactor.listenTCP(8080, factory)
print 'Runnning on port 8080'
reactor.run()
现在将您的浏览器指向http://localhost:8080/GetStatusPage1
(例如)