基本的なHTTPリクエストパラメータのサポートは、CGI
モジュールで提供されます。フォームデータを処理するために推奨されるメカニズムはcgi.FieldStorage
クラスです。
送信されたフォームデータを取得するには、FieldStorage
クラスを使用するのが最適です。このモジュールで定義されている他のクラスは、主に下位互換性のために提供されています。引数なしで、1回だけインスタンス化します。これは、標準入力または環境(CGI標準に従って設定されたさまざまな環境変数の値に応じて)からフォームの内容を読み取ります。標準入力を消費する可能性があるため、インスタンス化する必要があるのは1回だけです。
インスタンスは、PythonディクショナリのFieldStorage
ようにインデックスを付けることができます。in演算子を使用したメンバーシップテストが可能であり、標準の辞書メソッドkeys()
と組み込み関数もサポートしていますlen()
。空の文字列を含むフォームフィールドは無視され、辞書に表示されません。FieldStorage
このような値を保持するには、インスタンスの作成時にオプションのkeep_blank_valuesキーワードパラメーターにtrue値を指定します。
たとえば、次のコード(Content-Typeヘッダーと空白行がすでに印刷されていることを前提としています)は、フィールドnameとaddrの両方が空でない文字列に設定されていることを確認します。
form = cgi.FieldStorage()
if "name" not in form or "addr" not in form:
print "<H1>Error</H1>"
print "Please fill in the name and addr fields."
return
print "<p>name:", form["name"].value
print "<p>addr:", form["addr"].value
#...further form processing here...