このモジュールは WSGI 環境で使う様々なユーティリティ関数を提供します。 WSGI 環境は PEP 333 で記述されているような HTTP リクエスト変数を含む 辞書です。全ての environ パラメタを取る関数は WSGI 準拠の 辞書を与えられることを期待しています;細かい仕様については PEP 333 を 参照してください。
| environ) |
wsgi.url_scheme が "http" か "https" かについて、environ 辞書の
HTTPS 環境変数を調べることでその推測を返します。 戻り値は文字列(string)です。
この関数は、CGI や FastCGI のような CGI に似たプロトコルをラップする
ゲートウェイを作成する場合に便利です。典型的には、それらのプロトコルを
提供するサーバが SSL 経由でリクエストを受け取った場合には HTTPS 変数に
値 "1" "yes"、または "on" を持つでしょう。ですので、この関数はそのような値が
見つかった場合には "https" を返し、そうでなければ "http" を返します。
| environ [, include_query=1]) |
| environ) |
PATH_INFO と QUERY_STRING 変数は
無視されます。結果はリクエストによって指定されたアプリケーションオブジェクトの
ベース URI です。
| environ) |
PATH_INFO からSCRIPT_NAME まで一つの名前をシフトして
その名前を返します。environ 辞書は変更されます;PATH_INFO や
SCRIPT_NAME のオリジナルをそのまま残したい場合にはコピーを使ってください。
PATH_INFO にパスセグメントが何も残っていなければ、None が返されます。
典型的なこのルーチンの使い方はリクエスト URI のそれぞれの要素の処理で、
例えばパスを一連の辞書のキーとして取り扱う場合です。
このルーチンは、渡された環境を、ターゲット URL で示される別の WSGI アプリケーション
の呼び出しに合うように調整します。
例えば、/foo に WSGI アプリケーションがあったとして、そして
リクエスト URL パスが /foo/bar/baz で、/foo の WSGI アプリケーションが
shift_path_info を呼んだ場合、これは "bar" 文字列を受け取り、
環境は /foo/bar の WSGI アプリケーションへの受け渡しに適するように
更新されます。つまり、SCRIPT_NAME は /foo から /foo/bar に変わって、
PATH_INFO は /bar/baz から /baz に変化するのです。
PATH_INFO が単に "/" の場合、このルーチンは空の文字列を返し、
SCRIPT_NAME の末尾にスラッシュを加えます、これはたとえ
空のパスセグメントが通常は無視され、そして SCRIPT_NAME は通常
スラッシュで終わる事が無かったとしてもです。これは意図的な振る舞いで、
このルーチンでオブジェクト巡回(object traversal) をした場合に
/x で終わる URI と /x/ で終わるものを
アプリケーションが識別できることを保証するためのものです。
| environ) |
このルーチンは WSGI に必要な様々なパラメタを追加し、それには
HTTP_HOST、SERVER_NAME、SERVER_PORT、
REQUEST_METHOD、SCRIPT_NAME、PATH_INFO、あとは
PEP 333 で定義されている wsgi.* 変数群を含みます。これは
デフォルト値のみを追加し、これらの変数の既存設定は一切置きかえません。
このルーチンは、ダミー環境をセットアップすることによって WSGI サーバと アプリケーションのユニットテストを容易にすることを意図しています。 これは実際の WSGI サーバやアプリケーションで使うべきではありません。 なぜならこのデータは偽物なのです!
上記の環境用関数に加えて、wsgiref.util モジュールも 以下のようなその他のユーティリティを提供します:
| header_name) |
| filelike [, blksize=8192]) |
filelike に close() メソッドがある場合、返されたオブジェクトも close() メソッドを持ち、これが呼ばれた場合には filelike オブジェクトの close() メソッドを呼び出します。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。