【问题标题】:Python holding an webpage activePython保持网页处于活动状态
【发布时间】:2012-05-24 06:08:54
【问题描述】:

我正在尝试让一组 python 脚本向一组微控制器报告它们的状态。

所以我的想法是让每个 python 脚本创建自己的网页,可以由微控制器查看,但是无论如何让脚本本身保持页面服务,即一个 apache 库,这样如果脚本崩溃或未运行页面未提供或在脚本未运行时使页面具有默认值的方法。

【问题讨论】:

    标签: python web-services web


    【解决方案1】:

    你也可以看看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(例如)

    【讨论】:

    • 我试过这个,但无法让它正常工作,它出现了大量错误。还是谢谢
    • @Jonny Flowers:它在我的环境中运行良好。愚蠢的问题:你有没有扭曲过?它不是标准 Python 库的一部分...
    • 我没有,所以下载了它,你给我的代码引发了很多关于使用错误实例的事情
    • 大量关于使用 @implementor 类装饰器的消息。任何想法?但是页面是托管的。
    • 还有我如何让它在之后继续执行其他操作。我希望 Web 服务器说明脚本的其余部分是否正在运行。目前的功能是监听数据,然后放入数据库。
    【解决方案2】:

    您可以使用http://docs.python.org/library/simplehttpserver.html 或一些最小的http 服务器框架,例如http://flask.pocoo.org/http://www.cherrypy.org/

    如果您想向您的微控制器提供“实时”信息,请查看comet style 长轮询请求。您基本上会一直下载“页面”并将其作为数据流进行分析,而服务器会在“页面末尾”不断添加更新信息。

    【讨论】:

    • simplehttpserver 似乎是前进的方向,但是有没有办法将它实现到我的代码中以使其成为非阻塞,因为我希望它成为它所做的第一件事并且目前它正在等待每次有人访问页面时打印出来,我不在乎,我可以禁用它吗?
    • 这个 stackoverflow 问题可能会有所帮助:stackoverflow.com/questions/2455606/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-03
    • 2014-11-16
    • 2021-09-13
    • 2018-11-26
    • 2013-08-27
    • 2019-09-01
    相关资源
    最近更新 更多