Kay は、WSGI に準拠した Werkzeug のリクエストオブジェクト、および、レスポンスオブジェクトを採用しています。Kay は、ブラウザからアクセスされるとリクエストオブジェクトを生成し、URL マッピングによって特定した view 関数に渡します。 view 関数は第1引数にリクエストオブジェクトをとり、レスポンスオブジェクトを生成して返す必要があります。ここでは、リクエストオブジェクト、および、レスポンスオブジェクトの構成について説明します。
リクエストオブジェクトは以下の属性を持っています。
バッファリングされたクライアントからの入力データを文字列に読み込みます。普通は data にアクセスする方法としてはよくない方法です。クライアントが、サーバのメモリを浪費させるために、何十メガバイトものデータを送ることができてしまうためです。
これを避けるには、 content_length を先にチェックしてください。
アップロードされたすべてのファイルを格納した MultiDict オブジェクトです。 files のそれぞれのキーは <input type="file" name=""> のnameです。それぞれの値は Werkzeug の FileStorage オブジェクトです。
files は、リクエストメソッドが POST か PUT で、ポストされた <form> が enctype="multipart/form-data" を持つ場合のみデータを持ちます。そうでない場合は空です。
セッションデータが格納されています。セッション機能を有効にすると使用できます。
参考
レスポンスオブジェクトは以下の属性、および、メソッドを持っています。
Age レスポンスヘッダは、オリジンサーバにおいてレスポンス(または、その再検証が) が生成されてからの、送信者の推定経過時間を示します。
Age の値は、負値でない10進数の整数で、秒で時間を表します。
cookie を削除します。キーがない場合は、フェールサイレントです。
| パラメタ: |
|
|---|
レスポンスの開始の直前に自動的に呼び出され、ヘッダのよくある間違いを修正します。例えば、ロケーションヘッダはルートURLと結合されます。
| Parameter: | envirion – 修正の適用に使われるリクエストのWSGI env |
|---|
WSGI レスポンスが現在の型のレスポンスオブジェクトであることを強制します。Werkzeug はエクセプションのような多くのシチュエーションで内部的には BaseResponse を使います。もしエクセプションに get_response を呼ぶのであれば、たとえ、カスタムサブクラスを使っていたとしても、通常の BaseResponse オブジェクトを返されるでしょう。
このメソッドは与えられるレスポンスの型を強制できます。また、 envrion が与えると、WSGI 呼び出し可能オブジェクトを任意のレスポンスオブジェクトにコンバートします。
これは、メインディスパッチャでレスポンスをポストプロセスし、サブクラスによって提供される機能を使いたい場合に特に有用です。
可能な限り適切にレスポンスオブジェクトを変更することを覚えておいてください。
| パラメタ: |
|
|---|
アプリケーションの出力から新しいレスポンスオブジェクトを作成します。これは、常にジェネレータを返すアプリケーションで呼び出すとうまくいきます。アプリケーションは start_response 関数が返す write() 呼び出し可能オブジェクトを使うかもしれません。このメソッドはそのようなケースを自動的に解決しようとします。しかし、期待した出力を得られない場合は、 buffered に True をセットしバッファリングを強制すべきです。
| パラメタ: |
|
|---|---|
| 戻り値の型: | レスポンスオブジェクト |
与えられた environ に対するアプリケーションイテレータを返します。リクエストメソッドと現在のステータスコード次第で、戻り値は空のレスポンスになるでしょう。
もし、リクエストメソッドが HEAD であるか、または、ステータスコードが HTTP の仕様が空のレスポンスを要求する範囲である場合は、空のイテラブルが返されます。
| Parameter: | environ – リクエストの WSGI env です。 |
|---|---|
| 戻り値の型: | レスポンスイテラブルです。 |
このメソッドは、レスポンスが開始される直前に自動的に呼び出され、与えられた環境用に修正したヘッダを返します。必要であれば、いくつかの修正を適用してレスポンスからヘッダのコピーを返します。
例えば、ロケーションヘッダ(もしあれば)は環境のルートURLと結合されます。また、ステータスコードによってはコンテンツ長は自動的に0がセットされます。
| Parameter: | envrion – リクエストの WSGI env です。 |
|---|---|
| 戻り値の型: | 新しいヘッダオブジェクトを返します。 |
最終的な WSGI レスポンスをタプルで返します。タプルの最初の項目はアプリケーションイテレータです。2番目はステータスで、3番目はリストのヘッダです。返されたレスポンスは与えられた環境向けに作られます。例えば、 WSGI envのリクエストメソッドが HEAD である場合、レスポンスは空になり、ヘッダとステータスコードだけがあるでしょう。
| Parameter: | environ – リクエストの WSGI env です。 |
|---|---|
| 戻り値の型: | アプリケーションイテレータ、ステータス、ヘッダのタプルです。 |
リクエストに対するレスポンスコンディショナルを生成します。このメソッドはレスポンス用の etag が既に定義されている場合に機能します。 add_etag メソッドを使って etag を追加できます。 etag なしで呼び出された場合、date ヘッダをセットするだけです。
このメソッドは、リクエストか envrion 中のリクエストメソッドが GET か HEAD 以外の場合、何もしません。
return resp.make_conditional(req) と書くと自分自身を返しますが、配置済みのオブジェクトは書き換えられます。
| Parameter: | request_or_environ – レスポンスコンディショナルを再度作成するのに使うリクエストオブジェクトか WSGI env。 |
|---|
cookie をセットします。パラメータは、Python スタンダードライブラリの cookie Morsel オブジェクトと同じですが、 unicode のデータも可です。
| パラメタ: |
|
|---|
レスポンスオブジェクトは、 werkzeug.Response クラスのインスタンスです。Kay には、レスポンスを生成するための関数が用意されています。 kay.utils.render_to_response()
:mod:werkzeug.exceptions には沢山の例外が定義されています。これらのクラス名は HTTP エラーの種類を表しています。HTTP エラーを返したい場合は、これらの例外を raise してください。
HTTP エラーのリストです。