我想在本地启动一个简单的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'
问题是,我找不到为wsgiref简单服务器设置blocking
选项的方法。默认情况下,它是阻塞的,因此浏览器只有在我停止后才会启动。如果我先启动浏览器,则尚未处理该请求。我更喜欢使用标准库中的http服务器,而不是像龙卷风那样的外部服务器。
答案 0 :(得分: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(...)