如何关闭python服务器

Tom*_*Gal 2 python server

使用以下代码运行python服务器:

import os
from http.server import SimpleHTTPRequestHandler, HTTPServer                                                                                                                                   

os.chdir('c:/users/owner/desktop/tom/tomsEnyo2.5-May27')                                                                                                                                                                                      
server_address = ('', 8000)                                                                                                                                                                    
httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)                                                                                                                                   
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

如何使其停止?

Nab*_*med 6

您的问题是模棱两可的-如果您是通过shell(例如python myscript.py)运行服务器,只需按crtl + C

如果要使用代码优雅地关闭它,则必须确定某些条件,点或异常以将其称为关闭。您可以添加一个块并调用httpd.shutdown()-因为HttpServer它本身是一个SocketServer.TCPSServer子类:

第一类HTTPServerSocketServer.TCPServer子类,因此实现SocketServer.BaseServer接口。它创建并侦听HTTP套接字,将请求分派给处理程序。

因此,它BaseServer具有一个方法shutdown(),因此作为HttpServer的子类也具有它。

例如:

import os
from http.server import SimpleHTTPRequestHandler, HTTPServer                                                                                                                                   

os.chdir('c:/users/owner/desktop/tom/tomsEnyo2.5-May27')                                                                                                                                                                                      
server_address = ('', 8000)   
try:
    httpd = HTTPServer(server_address, SimpleHTTPRequestHandler)                                                                                                                                   
    httpd.serve_forever()
except Exception:
    httpd.shutdown()
Run Code Online (Sandbox Code Playgroud)

有用的相关问题-

  • 从我的测试来看,看起来 ` except Exception` 还不够,但应该是 ` except KeyboardInterrupt` (2认同)

SrG*_*ace -3

只需使用^C (control+c)即可关闭 python 服务器。