如何将Bottle集成到脚本中?

时间:2014-08-05 13:43:33

标签: python tkinter bottle

我有一个Tkinter应用程序,它使用网络服务器(Bottle)来显示一些数据。当前设置是在应用程序中使用Web服务器启动Process。不幸的是,这是我发现允许Windows应用程序和Bottle分别运行.mainloop().run()的唯一方法。该应用程序的骨架位于

之下
# main application file
import Tkinter as tk
from multiprocessing import Process
import testb

class App():
    def __init__(self):
        self.msg = "hello"
        self.root = tk.Tk()
        self.callback()

    def callback(self):
        # things happen here
        self.root.after(10000, self.callback)  

if __name__ == "__main__":
    app = App()
    proc = Process(target=testb.WebServer, args=(app.msg,))
    proc.start()
    app.root.mainloop()

# this is the testb.py imported above
import bottle

class WebServer():
    def __init__(self, msg):
        self.msg = msg
        bottle.route('/', 'GET', self.main)
        bottle.run(host='0.0.0.0', port=8080, debug=False, quiet=True)

    def main(self):
        return self.msg

我想要做的是摆脱Process(主要是为了简化实际应用程序中的代码和逻辑)并使其成为主服务器作为主应用程序的一部分运行。我意识到我有两个"悬挂实体" (UI和Web服务器都在不断地等待事件)但也许有一种方法可以同时运行这些活动?

注意:我实际上是想摆脱a previous solution discussed some months ago

0 个答案:

没有答案