) |
sys.stdin
、sys.stdout
、stderr
そして os.environ
経由での
CGI ベースの呼び出しです。これは、もしあなたが WSGI アプリケーションを持っていて、
これを CGI スクリプトとして実行したい場合に有用です。単に CGIHandler().run(app)
を
起動してください。app
はあなたが起動したい WSGI アプリケーションオブジェクトです。
このクラスは BaseCGIHandler のサブクラスで、これは wsgi.run_once
を true、
wsgi.multithread
を false、そして wsgi.multiprocess
を true にセットし、
常に sys と os を、必要な CGI ストリームと環境を取得するために使用します。
stdin, stdout, stderr, environ [, multithread=True [, multiprocess=False]]) |
CGIHandler に似ていますが、sys と os モジュールを
使う代わりに CGI 環境と I/O ストリームを明示的に指定します。multithread と
multiprocess の値は、ハンドラインスタンスにより実行されるアプリケーションの
wsgi.multithread
と wsgi.multiprocess
フラグの設定に使われます。
このクラスは SimpleHandler のサブクラスで、HTTP の "本サーバ" でない
ソフトウェアと使うことを意図しています。もしあなたが Status:
ヘッダを
HTTP ステータスを送信するのに使うような ゲートウェイプロトコルの実装(CGI、FastCGI、SCGIなど)を
書いているとして、おそらく SimpleHandler でなくこれをサブクラス化したいことでしょう。
stdin, stdout, stderr, environ [,multithread=True [, multiprocess=False]]) |
このクラスは BaseHandler のサブクラスです。これは __init__()、 get_stdin()、get_stderr()、add_cgi_vars()、_write()、 _flush() をオーバーライドして、コンストラクタから明示的に環境とストリームを 設定するようにしています。与えられた環境とストリームは stdin、stdout、 stderr それに environ 属性に保存されています。
) |
BaseHandler インスタンスは外部からの利用にたった一つのメソッドを持ちます:
app) |
その他の全ての BaseHandler のメソッドはアプリケーション実行プロセスで このメソッドから呼ばれます。ですので、主にそのプロセスのカスタマイズのために 存在しています。
以下のメソッドはサブクラスでオーバーライドされなければいけません:
data) |
) |
) |
wsgi.input
としての利用に適当な
入力ストリームオブジェクトを返します。
) |
wsgi.errors
としての利用に適当な
出力ストリームオブジェクトを返します。
) |
これらがオーバーライドするであろうメソッド及び属性です。 しかしながら、このリストは単にサマリであり、オーバーライド可能な全てのメソッドは 含んでいません。カスタマイズした BaseHandler サブクラスを作成しようとする前に ドキュメント文字列 (docstrings) やソースコードでさらなる情報を調べてください。
WSGI 環境のカスタマイズのための属性とメソッド:
wsgi.multithread
環境変数で使われる値。デフォルトは BaseHandler では
true ですが、別のサブクラスではデフォルトで(またはコンストラクタによって設定されて)
異なる値を持つことがあります。
wsgi.multiprocess
環境変数で使われる値。デフォルトは BaseHandler では
true ですが、別のサブクラスではデフォルトで(またはコンストラクタによって設定されて)
異なる値を持つことがあります。
wsgi.run_once
環境変数で使われる値。デフォルトは BaseHandler では
false ですが、CGIHandler はデフォルトでこれを true に設定します。
os.environ
のコピーですが、サブクラスはクラスまたは
インスタンスレベルでそれら自身のものを作ることができます。
デフォルト値は複数のクラスとインスタンスで共有されるため、
この辞書は読み取り専用と考えるべきだという点に注意してください。
SERVER_SOFTWARE
WSGI 環境変数の設定や HTTP レスポンス中の
デフォルトの Server:
ヘッダの設定に使われます。これは(BaseCGIHandler や
CGIHandler のような)HTTP オリジンサーバでないハンドラでは無視されます。
) |
) |
SERVER_SOFTWARE
を挿入します。
例外処理のカスタマイズのためのメソッドと属性:
exc_info) |
(type, value, traceback)
のタプルです。
デフォルトの実装は単純にトレースバックをリクエストの wsgi.errors
ストリームに
書き出してフラッシュします。サブクラスはこのメソッドをオーバーライドして
フォーマットを変更したり出力先の変更、トレースバックを管理者にメールしたり
その他適切と思われるいかなるアクションも取ることができます。
None
ならば、
全てのフレームが含まれます。
environ, start_response) |
このメソッドは sys.exc_info()
を使って現在のエラー情報に
アクセスでき、その情報はこれを呼ぶときに start_response に
渡すべきです(PEP 333 の "Error Handling" セクションに記述があります)。
デフォルト実装は単に error_status、error_headers、そして error_body 属性を出力ページの生成に使います。サブクラスでは これをオーバーライドしてもっと動的なエラー出力をすることが出来ます。
しかし、セキュリティの観点からは診断をあらゆる老練ユーザに吐き出すことは 推奨されないことに気をつけてください;理想的には、診断的な出力を有効に するには何らかの特別なことをする必要があるようにすべきで、これが デフォルト実装では何も含まれていない理由です。
(name, value)
タプル)のリストであるべきです。
デフォルトのリストはコンテントタイプを text/plain
にセットしているだけです。
PEP 333 の "オプションのプラットフォーム固有のファイルハンドリング" 機能のための メソッドと属性:
wsgi.file_wrapper
ファクトリ、または None
です。
この属性のデフォルト値は wsgiref.util の FileWrapper クラスです。
) |
その他のメソッドと属性:
Status:
ヘッダに HTTP ステータスを求めるような
CGI 状のゲートウェイプロトコル経由でなく、クライアントと
直接通信をするような場合には true 値に設定されているべきです。
この属性のデフォルト値は BaseHandler では true ですが、 BaseCGIHandler と CGIHandler では false です。
"1.0"
です。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。