Я увлекаюсь Python и HTTP.Создал этот простой серверный скрипт, который я запускаю с python cli.py serve
.Сервер запускается и работает, но клавиатурное прерывание Ctrl + C срабатывает только при следующем обновлении страницы, а не когда я на самом деле нажимаю Ctrl + C в терминале. Любое исправление для этого?Примечание: работает сразу, когда еще не поступил запрос.
from http.server import HTTPServer, BaseHTTPRequestHandler
import sys, signal
commands = ["serve"]
class Server(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == "/":
self.path = "/index.html"
self.send_response(200)
self.end_headers()
self.wfile.write(bytes("Tere, maailm!!",'utf-8'))
if len(sys.argv) > 1 and sys.argv[1] in commands:
index = commands.index(sys.argv[1])
if index == 0: # serve command
print("Starting web server. Press Ctrl+C to exit!")
httpd = HTTPServer(("localhost", 8080), Server)
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("Shutting down...")
httpd.socket.close()
sys.exit(0)
else:
print("Usage: python tab.py [command], where [command] is any of", commands)