Я не понимаю, почему этот код дает мне белую страницу в моем браузере.Это мой сценарий:
# H8_webserver_cgi_run_v2.py
# Before the server is running:
# http://localhost:8080/H8_cgi/test-1.py
from http.server import HTTPServer, CGIHTTPRequestHandler
## cgi_directories
## This defaults to
['/cgi-bin', '/htbin']
CGIHTTPRequestHandler.cgi_directories=['/H8_cgi']
port = 8080
httpd = HTTPServer(('127.0.0.1', port), CGIHTTPRequestHandler)
print("Starting simple_httpd on port: " + str(httpd.server_port))
print("cgi-dirs: ",CGIHTTPRequestHandler.cgi_directories)
print('try: http://localhost:8080/H8_cgi/test1.html')
import webbrowser
webbrowser.open_new_tab('http://localhost:8080/H8_cgi/test1.html')
# First the browser, later the server. How can this possibly work?
print('First the browser, later the server. How can this possibly work?')
httpd.serve_forever()
HTML-страница, на которую он ссылается:
<!DOCTYPE html>
<!-- Show nicely on phones and tablets -->
H8: Simpele CGI-demo
Een formulier verwerken met CGI.
Vul het formulier in.
<!-- door <pre>te gebruiken hoeven we ons niet te bekommeren over html-opmaak -->
Uw geslacht Man
Vrouw
I love Python
Ik kan Python dromen
Ik ben een Pythonista
Uw naam
Uw auto(s)
Klaar
Все, что я получил, это белая страница браузера.И это обратная связь с сервером:
"C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ python.exe" "E: / Anton / Python scripts / H8_webserver_cgi_run_v2.py"Запуск simple_httpd для порта: 8080 cgi-dirs: ['/ H8_cgi'] try: http://localhost:8080/H8_cgi/test1.html Сначала браузер, затем сервер.Как это может работать?127.0.0.1 - - [03 / Jun / 2018 18:20:18] "GET /H8_cgi/test1.html HTTP / 1.1" 200 -
127.0.0.1 - - [03 / Jun / 2018 18:20:18] команда: E: \ Anton \ H8_cgi \ test1.html ""
Исключительная ситуация при обработке запроса от ('127.0.0.1', 52021)
Traceback (самая последняяпоследний вызов):
Файл "C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ socketserver.py", строка 313, в _handle_request_noblock self.process_request (запрос, адрес клиента)Файл "C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ socketserver.py", строка 341, в process_request self.finish_request (запрос, адрес клиента) Файл "C: \ Users \ Dell E6430 \"AppData \ Local \ Programs \ Python \ Python35 \ lib \ socketserver.py ", строка 354, в файле finish_request self.RequestHandlerClass (запрос, адрес клиента, self) Файл" C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ "Python35 \ lib \ socketserver.py ", строка 681, в init self.handle () Файл" C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ P "ython35 \ lib \ http \ server.py ", строка 422, в дескрипторе self.handle_one_request () Файл" C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ http \ server.py ",строка 410, в методе handle_one_request () Файл "C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ http \ server.py", строка 645, в файле do_GET f = self.send_head ()«C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ http \ server.py», строка 953, в send_head возвращает self.run_cgi () файл «C: \ Users \ Dell E6430 \ AppData»\ Local \ Programs \ Python \ Python35 \ lib \ http \ server.py ", строка 1161, в файле run_cgi env = env Файл" C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ subprocess.py ", строка 676, в init restore_signals, start_new_session) Файл" C: \ Users \ Dell E6430 \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ subprocess.py ", строка 955, в _execute_childstartupinfo) OSError: [WinError 193]% 1 является geen geldige Win32-toepassing
HTML-документ находится в каталоге E: \ Anton \ H8_cgi \ test1.html То же самоеместоположение как сценарий.
Как я могу позволить этой вещи работать?