Ваш веб-сервер не запускает файл-обработчик CGI т.к. в вашем коде объект handler создан из класса SimpleHTTPRequestHandler, который не умеет обрабатывать CGI-запросы. Вам надо использовать класс CGIHTTPRequestHandler.
Мой код сервера, который поддерживает CGI. Файл cgi-form-simple-server.py:
Код: Выделить всё
import http.server
PORT = 8000
handler = http.server.CGIHTTPRequestHandler
server = http.server.HTTPServer(("0.0.0.0", PORT), handler)
print(f'HTTP Server Running at port {PORT}...')
server.serve_forever()
Код: Выделить всё
chmod u+x <имя файла обработчика>
Код: Выделить всё
#!/usr/bin/env python3
import cgi
our_form = cgi.FieldStorage()
field_left = our_form.getfirst("left", "не задано")
field_right = our_form.getfirst("right", "не задано")
print("Content-type: text/html;charset=utf-8")
print()
print(f"<p>left = {field_left}</p>")
print(f"<p>right = {field_right}</p>")
print(f'<a href="/">Назад</a>')
Код: Выделить всё
<html>
<body>
<form action="cgi-bin/cgi-form.py" >
<input type="text" name="left"><br />
<input type="text" name="right"><br />
<p><input type="submit"></p>
</form>
</body>
</html>
Код: Выделить всё
$ tree cgi-form-simple
├── cgi-form-simple-server.py
├── index.html
└── cgi-bin
└── cgi-form.py