## 5 関数

より細かく CGI をコントロールしたり、このモジュールで実装されている アルゴリズムを他の状況で利用したい場合には、以下の関数が便利です。

`parse`( | fp[, keep_blank_values[, strict_parsing]])

  環境変数、またはファイルからからクエリを解釈します (ファイルは 標準で `sys.stdin` になります) keep_blank_values および strict_parsing パラメタはそのまま `parse_qs()` に 渡されます。

`parse_qs`( | qs[, keep_blank_values[, strict_parsing]])

  文字列引数として渡されたクエリ文字列 (application/x-www-form-urlencoded 型のデータ) を 解釈します。解釈されたデータを辞書として返します。 辞書のキーは一意なクエリ変数名で、値は各変数名に対する値からなる リストです。

  オプションの引数 keep_blank_values は、 URL エンコード されたクエリ中で値の入っていないものを空文字列と見なすかどうか を示すフラグです。値が真であれば、値の入っていないフィールド は空文字列のままになります。標準では偽で、値の入っていない フィールドを無視し、そのフィールドはクエリに含まれていない ものとして扱います。

  オプションの引数 strict_pasing はパース時のエラーをどう 扱うかを決めるフラグです。値が偽なら (標準の設定です)、 エラーは暗黙のうちに無視します。値が真なら`ValueError` 例外を送出します。

  辞書等をクエリ文字列に変換する場合は``urllib`. urlencode()`関数を使用してください。

`parse_qsl`( | qs[, keep_blank_values[, strict_parsing]])

  文字列引数として渡されたクエリ文字列 (application/x-www-form-urlencoded 型のデータ) を 解釈します。解釈されたデータは名前と値のペアからなるリストです。

  オプションの引数 keep_blank_values は、 URL エンコード されたクエリ中で値の入っていないものを空文字列と見なすかどうか を示すフラグです。値が真であれば、値の入っていないフィールド は空文字列のままになります。標準では偽で、値の入っていない フィールドを無視し、そのフィールドはクエリに含まれていない ものとして扱います。

  オプションの引数 strict_pasing はパース時のエラーをどう 扱うかを決めるフラグです。値が偽なら (標準の設定です)、 エラーは暗黙のうちに無視します。値が真なら`ValueError` 例外を送出します。

  ペアのリストからクエリ文字列を生成する場合には `urllib`.urlencode() 関数を使用します。

`parse_multipart`( | fp, pdict)

  (ファイル入力のための) multipart/form-data 型の入力を 解釈します。引数は入力ファイルを示す fp と Content-Type: ヘッダ内の他のパラメタを含む辞書 pdict です。

  `parse_qs()` と同じく辞書を返します。辞書のキーは フィールド名で、対応する値は各フィールドの値でできたリストです。 この関数は簡単に使えますが、数メガバイトのデータがアップロードされる と考えられる場合にはあまり適していません -- その場合、 より柔軟性のある `FieldStorage` を代りに使ってください。

  マルチパートデータがネストしている場合、各パートを解釈できないので 注意してください -- 代りに `FieldStorage` を使ってください。

`parse_header`( | string)

  (Content-Type: のような) MIME ヘッダを解釈し、ヘッダの 主要値と各パラメタからなる辞書にします。

`test`( | )

  メインプログラムから利用できる堅牢性テストを行う CGI スクリプトです。 最小の HTTP ヘッダと、HTML フォームからスクリプトに供給された全ての 情報を書式化して出力します。

`print_environ`( | )

  シェル変数を HTML に書式化して出力します。

`print_form`( | form)

  フォームを HTML に初期化して出力します。

`print_directory`( | )

  現在のディレクトリを HTML に書式化して出力します。 Format the current directory in HTML.

`print_environ_usage`( | )

  意味のある (CGI の使う) 環境変数を HTML で出力します。

`escape`( | s[, quote])

  文字列 s 中の文字 "`&`"、 "`<`"、 および "`>`" を HTML で正しく表示できる文字列に変換します。 それらの文字が中に入っているかもしれないようなテキストを出力 する必要があるときに使ってください。 オプションの引数 quote の値が真であれば、二重引用符文字 ("`"`") も変換します; この機能は、例えば `<A HREF="...">` といったような HTML の属性値を出力に含めるのに 役立ちます。クオートされる値が単引用符か二重引用符、またはその両方 を含む可能性がある場合は、代りに `xml.sax.saxutils` の `quoteattr()` 関数を検討してください。