加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

从另一个线程关闭Python BasicHTTPServer

发布时间:2020-12-20 13:47:02 所属栏目:Python 来源:网络整理
导读:我有一个脚本在一个线程中设置BasicHTTPServer,以便主脚本可以自动打开指向服务器URL的Web浏览器下载文件.下载文件后,我想关闭该服务器,但我不知道如何去做.这是我目前所做的一个例子: def server(): HandlerClass = SimpleHTTPRequestHandler ServerClass
我有一个脚本在一个线程中设置BasicHTTPServer,以便主脚本可以自动打开指向服务器URL的Web浏览器下载文件.下载文件后,我想关闭该服务器,但我不知道如何去做.这是我目前所做的一个例子:

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()之后关闭服务器.

谢谢

解决方法

我尝试了给出 here的例子.你能检查它是否适合你.

runFlag = True
def server(server_class=BaseHTTPServer.HTTPServer,handler_class=BaseHTTPServer.BaseHTTPRequestHandler):
    global runFlag
    server_address = ('127.0.0.1',HandlerClass)
    while runFlag:
        httpd.handle_request()
    httpd.shutdown()

def download():
    t = threading.Thread(name='server',target=server)
    t.start()
    webbrowser.open('https:www.google.com')
    global runFlag 
    runFlag = False

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读