如何关闭python服务器

新手上路,请多包涵

使用此代码运行 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()

如何让它停止?

原文由 Tom Bar-Gal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

您的问题不明确 - 如果您通过 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()

有用的相关问题 -

原文由 Nabeel Ahmed 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进