【发布时间】:2015-03-07 18:02:16
【问题描述】:
我有一个脚本,它在线程中设置BasicHTTPServer,以便主脚本可以自动打开指向服务器url 的网络浏览器以下载文件。下载文件后,我想关闭该服务器,但我不知道如何去做。这是我目前所做的一个例子:
def server():
HandlerClass = SimpleHTTPRequestHandler
ServerClass = BaseHTTPServer.HTTPServer
Protocol = 'HTTP/1.0'
server_address = ('127.0.0.1', 8000)
HandlerClass.protocol_version = Protocol
httpd = ServerClass(server_address, HandlerClass)
httpd.serve_forever()
def download():
t = threading.Thread(name='server', target=server)
t.start()
webbrowser.open('safari-http://127.0.0.1:8000/')
我想在 webbrowser.open() 之后关闭服务器。
谢谢
【问题讨论】:
-
只是想指出我知道 BaseServer.shutdown() 方法,但我不知道如何在这种情况下实现它。
-
不工作,很遗憾。表示没有全局变量httpd。将除“httpd.serve_forever()”语句之外的所有内容移到 server() 函数之外只会在调用 download() 时使程序挂起。
-
错误:“未定义全局名称'self'”
-
httpd.shutdown() 仍然没有效果。
标签: python