0

我想在本地启动一个简单的 Web 服务器,然后启动一个带有刚刚提供的 url 的浏览器。这是我想写的东西

from wsgiref.simple_server import make_server
import webbrowser

srv = make_server(...)
srv.blocking = False
srv.serve_forever()
webbrowser.open_new_tab(...)
try:
  srv.blocking = True
except KeyboardInterrupt:
  pass
print 'Bye'

问题是,我找不到blocking为 wsgiref 简单服务器设置选项的方法。默认情况下,它是阻塞的,因此只有在我停止浏览器后才会启动浏览器。如果我先启动浏览器,请求尚未处理。我更喜欢使用标准库中的 http 服务器,而不是外部服务器,如龙卷风。

4

1 回答 1

1

您必须使用服务器生成一个线程,以便您可以继续控制流,或者您必须使用 2 个 python 进程。

未经测试的代码,你应该明白


class ServerThread(threading.Thread):

    def __init__(self, port):
        threading.Thread.__init__(self)

    def run(self):
        srv = make_server(...)
        srv.serve_forever()

if '__main__'==__name__:
    ServerThread().start()
    webbrowser.open_new_tab(...)
于 2010-10-09T21:20:58.790 回答