フォームデータを含む単純なhtmlページをGETを使用してユーザーに送信し、POSTを使用してフォームから変数を受信しようとしています。HTMLファイルは次のようになります。
<HTML>
<title> My Title</title>
<body>
<form method="post" action="http.py">
<input name="Name" type="text"/>
<input name="Submit" type="submit" value="Submit" />
</form>
</body>
</HTML>
Pythonスクリプトは次のとおりです。
import os
import cgi
import sys
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
class customHTTPServer(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
fh=open('index.html','r')
self.wfile.write(fh.read())
return
def do_POST(self):
form = cgi.FieldStorage()
self.send_response(200)
self.end_headers()
self.wfile.write(form['Name'].value)
def main():
try:
server = HTTPServer(('',9111),customHTTPServer)
print 'server started at port 8080'
server.serve_forever()
except KeyboardInterrupt:
server.socket.close()
if __name__=='__main__':
sys.exit(main())
ただし、FieldStorageは常に空のままです。私はすでにself.rfileの内容を確認しようとしましたが、self.rfile.readlines()を実行しようとすると、ブラウザーがスタックし、スクリプトがデータストリームの終了を待機しているように見えることがわかりました。POSTで送信するName変数をどこから取得する必要がありますか?