Я пытаюсь создать супер базовый веб-сервер на Python, основанный на BaseHTTPRequestHandler.Когда я впервые выполняю запрос GET по адресу 127.0.0.1/a, все работает хорошо, и я восстанавливаю изображение в своем браузере.
Однако, когда я повторяю этот запрос GET во второй раз, я ничего не получаю.Отслеживая код, я вижу, что сам код выполняется через весь сегмент do_GET (self).
Я действительно смущен тем, почему веб-сервер будет работать в первый раз, а не в следующий раз.
Любая помощь очень ценится.
from http.server import BaseHTTPRequestHandler, HTTPServer
from os import curdir, sep
imagefile = "a.jpg"
imagepage =open(curdir+sep+imagefile, 'rb')
notfound = "File not found"
class webserverHandler(BaseHTTPRequestHandler):
def do_OPTIONS(self):
self.send_response(200)
self.send_header('Access-Control-Allow-Origin', '*')
self.send_header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS')
self.send_header("Access-Control-Allow-Headers", "X-Requested-With")
def do_GET(self):
if self.path == "/a":
print("getting thg jpg file")
self.send_response(200)
self.send_header("Content-type","image/png")
self.end_headers()
self.wfile.write(imagepage.read())
else:
self.send_error(404, notfound)
def main():
try:
port = 1234
server = HTTPServer(('127.0.0.1', port), webserverHandler)
print("Web server is running on port {}".format(port))
server.serve_forever()
except KeyboardInterrupt:
print("^C entered, stopping web server...")
finally:
if server:
print("closing server")
server.socket.close()
if __name__ == '__main__':
main()
Спасибовы!