フォームからのデータ取得
Pythonにはcgiモジュールが用意されていて、これを使うとCGIで必要な機能が簡単に使えます。ここでは、CGIでよく行われるフォームからの入力処理について述べます。
まず、FiledStorageクラスをインスタンス化して、クライアントから送られてきたフォーム内容を取得できるようにします。送られてきた内容に目的のデータがあるかをhas_keyメソッドで確認し、もしあればその値を取得します。リスト1は単純に送られてきたデータを送り返すだけの簡単なプロラムです。
リスト1
# CGI Test import cgi print "Content-Type: text/html\n\n" print "<html><body>" form = cgi.FieldStorage() form_ok = 0 if form.has_key("name") and form.has_key("addr") : form_ok = 1 if form_ok == 0 : print "<h1>ERROR</h1>" else : print "<h2>Result</h2><hr><p>" print "<p><b>name: </b>", form["name"].value print "<p><b>addr: </b>", form["addr"].value print "</body></html>" |
リスト2はクライアント側のフォーム内容です。
リスト2
<html> <head> <title>Python CGI Test(1)</title> </head> <body> <h1>Python CGI Test(1)</h1><hr><p> <form name = "Form1" method="POST" action="/cgi-bin/cgitest1.py"> name: <input type="text" size=30 name="name"><p> addr: <input type="text" size=30 name="addr"><p> <input type="submit" value="submit" name="button1"><p> </form> </body> </html> |
図1にフォームの表示、図2にCGI実行結果を示します。
図1 フォームの表示例
図2 結果の表示例