我是一個noob;試圖在Python中創建和使用一個簡單的web服務器,該服務器執行用Python編寫的CGI腳本。我正在使用Windows XP和Python v3.3.0。我有一個包含 「myserver.py」, 「sample.html」 和目錄 「的cgi-bin」 又包含 「cgi_demo.py」無法在Python 3.3中使用CGIHTTPRequestHandler運行python cgi腳本
myserver.py一個 「MYSERVER」 目錄
from http.server import HTTPServer
from http.server import CGIHTTPRequestHandler
port = 8080
host = '127.0.0.1'
server_address = (host,port)
httpd = HTTPServer(server_address,CGIHTTPRequestHandler)
print("Starting my web server on port "+str(port))
httpd.serve_forever()
cgi_demo.py
import cgi
import cgitb; cgitb.enable()
print("Content-type: text/html")
print
print("<html><body>")
for i in range(0,100):
print(i,"<br>")
print("</body></html>")
現在目錄列表中工作正常 「MYSERVER」 而不是 「cgi-bin目錄」;也許這就是它的編碼 - 我在這裏沒有問題。 「sample.html」也檢索得很好。但是,「cgi_demo.py」的執行不正確。我在瀏覽器中看到一個空白頁面;並且控制檯窗口(也是空白的)出現並消失。此外,在服務器的控制檯上,我收到消息
127.0.0.1 - - [29/Nov/2012 12:00:31] "GET /cgi-bin/cgi_demo.py HTTP/1.1" 200 -
127.0.0.1 - - [29/Nov/2012 12:00:31] command: C:\Python33\python.exe -u "D:\python apps\my web server\cgi-bin\cgi_demo.py" ""
127.0.0.1 - - [29/Nov/2012 12:00:32] CGI script exited OK
請告訴我什麼是錯的!我感覺我的腳本的輸出流沒有連接到服務器。我究竟做錯了什麼?不要說我必須擴展CGIHTTPRequestHandler!
關於[2]:我認爲這是其中一個令人討厭的python錯誤。發生在我身上,但與f.close。解釋器沒有標記這個的原因可能是因爲對函數類型對象的引用是一個有效的語句,儘管它沒有完成任何事情。 – er4z0r