Почему не происходит перенаправление на указанную HTML-страницу?
На странице есть форма, после отправки данных и записи их в json-файл нужно чтобы просто показывалась страница error.html, но она просто зависает. Перенаправление в методе do_POST. У меня всего две страницы: message.html и error.html
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
url = urlparse(self.path)
match url.path:
case '/':
self.render_template('message.html')
case '/message.html' | '/message':
self.render_template('message.html')
case _:
file = pathlib.Path(FRONT_DIR + url.path)
if file.exists():
self.send_static(file)
else:
self.render_template('error.html', 404)
def do_POST(self):
raw_data = self.rfile.read()
data = unquote_plus(raw_data.decode())
data = self.parse_params(data)
path = pathlib.Path(FRONT_DIR + 'storage/data.json')
with open(path, 'w', encoding='cp1251') as file:
json.dump(data, file, ensure_ascii=False)
self.send_response(302)
self.send_header('Location', 'front-init/error.html')
self.end_headers()
def render_template(self, html_page, status_code=200):
self.send_response(status_code)
self.send_header('Content-type', 'text/html')
self.end_headers()
path = pathlib.Path(FRONT_DIR + html_page)
with open(path, 'rb') as file:
self.wfile.write(file.read())
def send_static(self, file_path, status_code=200):
self.send_response(status_code)
mime_type, *rest = mimetypes.guess_type(file_path)
if mime_type:
self.send_header('Content-type', mime_type)
else:
self.send_header('Content-type', 'text/plain')
self.end_headers()
with open(file_path, 'rb') as file:
self.wfile.write(file.read())
Источник: Stack Overflow на русском