このモジュールは 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() メソッドを呼び出します。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。