私は初心者です。Python で書かれた CGI スクリプトを実行する Python で単純な Web サーバーを作成して使用しようとしています。Windows XP と Python v3.3.0 を使用しています。「myserver.py」、「sample.html」を含む「myserver」ディレクトリと、「cgi_demo.py」を含む「cgi-bin」ディレクトリがあります。
myserver.py
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 を拡張しなければならないとは言わないでください!!