(機械翻訳) pyramid.request
¶
-
class
Request
(environ, charset=None, unicode_errors=None, decode_param_names=None, **kw)[ソース]¶ :term: WebOb`要求クラスのサブクラスです。このクラスのインスタンスは:term: `router`によって作成され、 `request``引数として呼び出し可能なビュー(および他のサブシステム)に提供されます。
以下のドキュメント(このサブクラスで定義されている `` add_response_callback``と `` add_finished_callback``メソッドのために保存されています)と `` context``、 `` registry``、
ルート ``、 `` subpath
、 `` traversed``、 `` view_name``、 `` virtual_root``、および `` virtual_root_path``を含み、これらはそれぞれ、要求入力時に:term: `router 'によって要求に追加されます)は、このドキュメンテーションが生成されたときに使用されたWebObソースコードから自動生成されます。技術的な制約のため、このドキュメンテーションが自動生成されるWebObバージョン番号はまだ表示できませんが、app: `Pyramid`バージョンのリリース時には「WebObバージョン」となります。詳細については、https://webob.org/を参照してください。
-
context
¶ :term: context`は:term: request`オブジェクトの `` context``属性として利用できます。現在の要求によって暗示されるコンテキストオブジェクトになります。コンテキストオブジェクトの詳細は、:ref: `traversal_chapter`を参照してください。
-
registry
¶ term: application registry`は:term: request`オブジェクトの `` registry``属性として利用できます。アプリケーションレジストリの詳細については:ref: `zca_chapter`を参照してください。
-
root
¶ :term: root`オブジェクトは:term: request`オブジェクトの `` root``属性として利用できます。これは、トラバースが開始されたリソースオブジェクト(ルート)になります。ルートオブジェクトに関する情報は:ref: `traversal_chapter`を参照してください。
-
subpath
¶ traversal:term: subpath`は:term: request`オブジェクトの `` subpath``属性として利用できます。 0個以上の要素(Unicodeオブジェクト)を含むシーケンスです。サブパスについては、:ref: `traversal_chapter`を参照してください。
-
traversed
¶ "traversal path "は:term: request`オブジェクトの `traversed``属性として利用できます。それは:term: `context`をたどるために使われた順序付けられた名前セットを表すシーケンスであり、ビュー名やサブパスは含まれません。要求に関連付けられた仮想ルートがある場合、仮想ルートパスはトラバーサルパス内に含まれます。詳細は、:ref: `traversal_chapter`を参照してください。
-
view_name
¶ :term: view 'は:term: request`オブジェクトの `` view_name``属性として利用できます。これは単一の文字列(デフォルトのビューをレンダリングしている場合は空の文字列)になります。ビュー名については、:ref: `traversal_chapter`を参照してください。
-
virtual_root
¶ :term: virtual root`は:term: request`オブジェクトの `` virtual_root``属性として利用できます。現在の要求によって暗示される仮想ルートオブジェクトになります。仮想ルートの詳細については、:ref: `vhosting_chapter`を参照してください。
-
virtual_root_path
¶ :term: virtual root * path *は:term:` request`オブジェクトの `` virtual_root_path``属性として利用できます。これは、仮想ルートオブジェクトにトラバースするために使用された、順序付けられた名前セットを表すシーケンスです。仮想ルートの詳細については、:ref: `vhosting_chapter`を参照してください。
-
exception
¶ :term: ルートファクトリ`またはa:term: ` `` `` `` callable``などのその他のポイントで例外が発生した場合、app: Pyramid`はリクエストの処理中にユーザ定義コードを実行します。捕捉されたオブジェクトは:term: `例外ビュー、:term: 応答コールバック`または:term: `終了コールバック 'の中でリクエストの exception``属性として利用できます。例外が発生しなかった場合、 ` request.exception``の値は応答と終了コールバックの中で `` None``になります。
-
exc_info
¶ :term: ルートファクトリ`またはa:term: ` `` `` `` `` callable`などの例外によって例外が発生した場合や、app: Pyramid`がリクエストの処理中にユーザ定義コードを実行する場合、 ` sys.exc_info() ``は:term: 例外ビュー 、: :`応答コールバック `、 :終了済みコールバック の中で要求の exc_info``属性として利用できます。 。例外が発生しなかった場合、 ` request.exc_info``の値は応答と終了コールバックの中で `` None``になります。
-
response
[ソース]¶ この属性は実際には:class: `pyramid.response.Response`クラスのインスタンスを返す" reified "プロパティです。返される応答オブジェクトは、この属性にアクセスするまで存在しません。一度アクセスされると、このリクエストオブジェクトへのその後のアクセスは同じ:class: `〜pyramid.response.Response`オブジェクトを返します。
`` request.response`` APIは、レンダラによって使用されます。レンダラーは、 `` request.response``にアクセスすることによってそのレンダラーを使用するビューから返される応答オブジェクトを取得します。したがって、 `` request.response`` APIを使って、 `` request.response.set_cookie(...) ``や `` request.response.set_cookie()を呼び出すなどして、 request.response.content_type = 'text / plain'``など)をレンダラーを使用するビュー内で使用します。たとえば、:term: `renderer`を使用するビュー内で:
response = request.response response.set_cookie('mycookie', 'mine, all mine!') return {'text':'Value that will be used by the renderer'}
この応答オブジェクトへの突然変異は、レンダリング後にクライアントに送信される応答に保存されます。レンダラと一緒に `` request.response``を使う方法については、:ref: `request_response_attr`を参照してください。
レンダラー以外のコードでは、"手で"応答を作成する代わりにrequest.responseを使用することもできます。たとえば、ビューコードで:
response = request.response response.body = 'Hello!' response.content_type = 'text/plain' return response
この状況での応答はグローバルではないことに注意してください。レンダラーが使用されていない場合でもビューコードから返さなければなりません。
-
session
[ソース]¶ a:term: session factory`が設定されている場合、この属性は現在のユーザの:term: session`オブジェクトを表します。セッションファクトリ*が設定されていない場合、 `` request.session``属性を要求すると:class: `pyramid.exceptions.ConfigurationError`が送出されます。
-
matchdict
¶ この要求の間にa:term: route`が一致した場合、この属性はルートに関連付けられたURLパターンと一致する値を含む辞書になります。この要求の間にルートが一致しなかった場合、この属性の値は ` None``になります。 See:ref: matchdict。
-
matched_route
¶ この要求の間にa:term: route`がマッチした場合、この属性はそのルートに関連するURLパターンにマッチしたルートを表すオブジェクトになります。この要求の間にルートが一致しなかった場合、この属性の値は ` None``になります。参照:ref: `matched_route`を参照してください。
-
authenticated_userid
¶ バージョン 1.5 で追加.
現在認証されているユーザの:term: userid`を返すプロパティ、またはterm:`認証ポリシー `が有効でない場合、または現在認証されていないユーザが存在しない場合は None``を返します。実効認証ポリシーは:term: `userid`に関連するレコードが永続ストレージに存在することを保証しているので、これは:attr:〜pyramid.request.Request.unauthenticated_userid`とは異なります。そうでない場合、この値は `` None``になります。
-
unauthenticated_userid
¶ バージョン 1.5 で追加.
要求に存在する資格証明の* claim *(検証されていない):term: userid`を表す値を返すプロパティ。 :term: `認証ポリシー`が有効でない場合、または現在のリクエストに関連付けられたユーザデータがない場合は ` None``を返します。これは:attr: 〜pyramid.request.Request.authenticated_userid`とは異なります。有効な認証ポリシーは:term: userid`に関連するレコードが永続ストレージに存在することを保証しないからです。永続ストレージに:term: userid`が存在しない場合でも、この値は要求データによって:term: userid` * claim *の値になります。
-
effective_principals
¶ バージョン 1.5 で追加.
このリクエストの 'effective':term: principal`識別子のリストを返すプロパティです。このリストは通常、ユーザが現在認証されている場合は、現在認証されているユーザの:term: `userid`を含みますが、これは実際には:term:`認証ポリシー 'に依存します。 term: `authentication policy`が有効でない場合、これは:attr: pyramid.security.Everyone`プリンシパルだけを含むシーケンスを返します。
-
invoke_subrequest
(request, use_tweens=False)¶ バージョン 1.4a1 で追加.
提供された `` request``オブジェクトの情報に基づいて、Pyramidアプリケーションから応答オブジェクトを取得します。 `` request``オブジェクトはPyramidリクエストインタフェース(:class: pyramid.request.Request`インスタンスなど)を実装するオブジェクトでなければなりません。 ` use_tweens``が `` True``の場合、要求は要求入力に最も近いtweenスタックの:term: tween`に送られます。 ` use_tweens``が `` False``の場合、リクエストはメインルータハンドラに送られ、トゥイーンは呼び出されません。
この機能も:
- スレッドローカルスタックを管理します(func: 〜pyramid.threadlocal.get_current_request`と:func:〜pyramid.threadlocal.get_current_registry`はリクエスト中に機能します)
- 渡されたリクエストオブジェクトに `` registry``属性(現在のPyramidレジストリ)と `` invoke_subrequest``属性(呼び出し可能)を追加します。
- (:meth: 〜pyramid.config.Configurator.add_request_method`または:meth:〜pyramid.config.Configurator.set_request_property`を介して追加されたもののような)リクエスト拡張子を、渡されたリクエストに設定します。
- リクエスト処理の開始時にa:class: `〜pyramid.events.NewRequest`イベントが送信されます。
- コンテキストリソースが見つかると、class: `〜pyramid.events.ContextFound`イベントが送信されます。
- 渡された要求によって暗示されたユーザーが、呼び出し可能なビューを呼び出してから呼び出すために必要な権限を持つことを保証します。
- Pyramidアプリケーションから応答が得られた場合、要求の存続期間内に定義されたany:term: `response callback`関数を呼び出します。
- レスポンスが取得された場合、class: `〜pyramid.events.NewResponse`イベントが送信されます。
- リクエストの有効期間内に定義されたany:term: `finished callback`関数を呼び出します。
`` invoke_subrequest``は実際には* Requestオブジェクトのメソッドではありません。 Pyramidルーターが呼び出されたとき、またはサブ要求が呼び出されたときに呼び出される呼び出し可能関数です。つまり、 `` pshell``環境などで提供されているリクエストでは利用できません。
参考
参照:ref: `subrequest_chapter`も参照してください。
-
invoke_exception_view
(exc_info=None, request=None, secure=True, reraise=False)¶ 呼び出されたリクエストに関連する例外ビューを実行します。引数は次のとおりです。
`` exc_info``
提供されている場合は、 `` sys.exc_info()によって提供される形式の3タプルでなければなりません。提供されていない場合、現在のインタプリタ例外情報を取得するために `` sys.exc_info() ``が呼び出されます。デフォルト: `` None
。``要求 ``
使用するリクエストが、このメソッドが呼び出されたインスタンスと同じものでない場合は、ここで渡すことができます。デフォルト: `` None``。``安全 ``
現在のユーザが適切な権限を持っていない場合に例外ビューを表示しない場合、これは `` True``でなければなりません。デフォルト: `` True``です。`` reraise``
a:term: response`オブジェクトが作成できなかった場合、元のエラーを再生成するかどうかを示すブール値。 ` False``の場合:class: pyramid.httpexceptions.HTTPNotFound``例外が送出されます。デフォルト: ` False``。レスポンスが生成された場合、 `` request.exception``と `` request.exc_info``はレスポンスのレンダリングに使用される値のままになります。そうしないと、 `` request.exception``と `` request.exc_info``の以前の値が復元されます。
バージョン 1.7 で追加.
バージョン 1.9 で変更: `` request.exception``と `` request.exc_info``のプロパティは、以前にメソッドを呼び出す前の値にリセットされていた応答のレンダリングに使用される例外を反映します。
また、 `` reraise``引数が追加されました。
-
has_permission
(permission, context=None)¶ パーミッションとオプションのコンテキストが与えられた場合、提供されたコンテキスト、またはすでにリクエストに関連付けられているコンテキストでこのリクエストにパーミッションが与えられている場合、data: pyramid.security.Allowed`のインスタンスを返します。それ以外の場合は、data: `pyramid.security.Denied`のインスタンスを返します。このメソッドは、現在の認証および認可ポリシーに委任します。戻り値:data:この要求に対して認証ポリシーが登録されていない場合、無条件に `pyramid.security.Allowed`が返されます。 ` context``が提供されていないか、 `` None``として提供されている場合、コンテキストは `` request.context``属性です。
パラメータ: 戻り値: class: pyramid.security.Allowed`または:class: pyramid.security.Denied`のいずれかです。
バージョン 1.5 で追加.
-
add_response_callback
(callback)¶ :term: response`オブジェクトが正常に作成された時点で、:term: router`によってコールされるコールバックのセットにコールバックを追加します。 :app: `Pyramid`にはグローバルレスポンスオブジェクトがありません。この機能は、アプリケーションが作成されたレスポンスに対して実行されるアクションをアプリケーションが登録できるようにします。
'callback'は、 `` request``と `` response``の2つの位置パラメータを受け入れる呼び出し可能です。例えば:
1 2 3 4
def cache_callback(request, response): 'Set the cache_control max_age for the response' response.cache_control.max_age = 360 request.add_response_callback(cache_callback)
応答コールバックは、追加された順に(最初から最後に追加された順に)呼び出されます。アプリケーションコードで例外が発生した場合、または:term: `view`コードによって返された応答オブジェクトが無効な場合、応答コールバックは呼び出されません。
すべての応答コールバックは、:tweensの後に*呼び出されます::class: `pyramid.events.NewResponse`イベントが送信されます。
コールバックによって発生したエラーは特別に処理されません。彼らは:app: `Pyramid`ルータアプリケーションの呼び出し側に伝播します。
参考
参照:ref: `using_response_callbacks`も参照してください。
-
add_finished_callback
(callback)¶ リクエスト処理の最後で、:term: `router`によって無条件に呼び出されるコールバックのセットにコールバックを追加します。
`` callback``は、単一の位置パラメータ: `` request``を受け入れる呼び出し可能です。例えば:
1 2 3 4 5 6 7 8 9
import transaction def commit_callback(request): '''commit or abort the transaction associated with request''' if request.exception is not None: transaction.abort() else: transaction.commit() request.add_finished_callback(commit_callback)
完成したコールバックは、追加された順に呼び出されます(最初から最後まで追加された)。応答コールが生成されないようにするアプリケーションコード内で例外が発生した場合でも、終了コールバック(応答コールバックとは異なり)は常に*呼び出されます。
要求に関連付けられた完了コールバックのセットは、その要求の処理中に非常に遅い*と呼ばれます。基本的には:term: router`によって呼び出される最後のものです。これらは、ルータ要求処理コード内の最上位の ` finally: ``ブロックで既に応答処理が行われた後に呼び出されます。結果として、完了したコールバックに与えられた `` request``に対して実行された突然変異は、応答処理が既に発生しており、完了したすべてのコールバックが処理された直後にリクエストの有効範囲が失効するため、意味のある効果はありません。
終了コールバックによって発生したエラーは特別に処理されません。彼らは:app: `Pyramid`ルータアプリケーションの呼び出し側に伝播します。
参考
ref: `using_finished_callbacks`も参照してください。
-
route_url
(route_name, *elements, **kw)¶ named:app: Pyramid:term:`ルート設定 `の完全修飾URLを生成します。
最初の位置引数としてルートの `` name``を使います。追加の位置指定引数( `` * elements``)はURLの生成後にパスセグメントとしてURLに追加されます。
キーワード引数を使用して、ルート定義の動的パス要素に一致する値を指定します。何らかの理由でURLを生成できない場合(たとえば十分な引数がない場合)、a:exc: `KeyError`例外を発生させます。
たとえば、パス `` {foo} / {bar} / * traverse``で"foobar "という名前のルートを定義したとします:
request.route_url('foobar', foo='1') => <KeyError exception> request.route_url('foobar', foo='1', bar='2') => <KeyError exception> request.route_url('foobar', foo='1', bar='2', traverse=('a','b')) => http://e.com/1/2/a/b request.route_url('foobar', foo='1', bar='2', traverse='/a/b') => http://e.com/1/2/a/b
``:segment``引数を置き換える値は、文字列またはUnicodeオブジェクトとして渡すことができます。生成されたURLに配置される前に、UTF-8とURLで引用符でエンコードされます。
`` * remainder``引数を置き換える値は、Unicode /文字列値の文字列*または*タプルとして渡すことができます。タプルが `` * remainder``置換値として渡された場合、その値はURLで引用され、UTF-8にエンコードされます。結果の文字列はスラッシュで結合され、URLにレンダリングされます。文字列が `` * remainder``置換値として渡された場合、埋め込みスラッシュを除いてURL引用符で囲まれた後にURLに追加されます。
`` _query``が提供されている場合は、URLの末尾に付けるクエリ文字列を作成するために使用されます。 `` _query``の値は、2つのタプルのシーケンスでもよいし、2つのタプル(おそらく辞書)のシーケンスを返す `` .items() ``メソッドを持つデータ構造でもよい。このデータ構造体は:func: pyramid.url.urlencode`関数のドキュメントごとにクエリ文字列に変換されます。これにより、 ` x-www-form-urlencoded``形式のクエリ文字列が生成されます。 `` x-www-form-urlencoded``以外のクエリ文字列は*文字列*の値を `` _query``として渡すことで使用できます。この場合はURLで引用されます(例:query = "foo bar "は" foo%20bar "になります)。しかし、結果は `` x-www-form-urlencoded``で要求される `` k = v``形式である必要はありません。クエリデータがクエリ文字列に変換されると、先行する ``? ``が先頭に付加され、生成された文字列が生成されたURLに追加されます。
注釈
シーケンスや辞書である `` _query``として渡されるPythonのデータ構造体は `` doseq``引数を `` `` `` `` `` `` `` `` `` `` `` `` /真 ``。これは、シーケンスを値として渡すことができ、ak = vペアが各値のクエリ文字列に配置されることを意味します。
キーワード引数 `` _anchor``が存在する場合、その文字列表現は:rfc: 3986#section-3.5`で引用され、生成されたURLの名前付きアンカーとして使用されます(例えば _anchor``がルートURLが ` http:// example.com / route / url``である場合、生成されるURLは `` http:// example.com / route / url#foo``になります) 。
注釈
`` _anchor``が文字列として渡される場合は、UTF-8でエンコードされている必要があります。 `` _anchor``がUnicodeオブジェクトとして渡された場合、URLに追加される前にUTF-8に変換されます。
`` _anchor``と ``query``の両方が指定されている場合、アンカー要素は常に` `http://example.com?foo = 1#bar``のようにクエリ要素に従います。
`` _scheme``、 `` _host``、 `` _port``のいずれかのキーワード引数が渡され、 `` None``でなければ、与えられた値は生成されたURLの名前付き部分を置き換えます。たとえば、 `` _host = 'foo.com'``を渡し、ホスト置換えなしで生成されたURLが `` http:// example.com / a``である場合、結果は ` http:// foo.com / a`。
`` _scheme``が `` https``として渡され、 `` _port``が渡されない場合、 `` _port``値は `` 443``として渡されたものとみなされます。同様に、 `` _scheme``が `` http``として渡され、 _port``が渡されない場合、 _port``値は 80``として渡されたものとみなされます。この動作を避けるには、 ` _scheme``を渡すたびに明示的に `` _port``を渡してください。
キーワード `` _app_url``が存在する場合、生成されたURLのプロトコル/ホスト名/ポート/リーディングパス接頭辞として使用されます。例えば、 `` http://example.com:8080 / foo``の `` _app_url``を使うと `` http://example.com:8080 / foo / fleeb / flub``というURLが生成されます。 `` route_name``に関連するルートパターンの展開が `` / fleeb / flub``に展開された場合、この関数から返されます。 `` _app_url``が指定されていない場合、 `` request.application_url``の結果が接頭辞として使われます(デフォルト)。
`` _app_url``と `` _scheme``、 `` _host``、または `` _port``のいずれかが渡された場合、 `` _app_url``が優先され、 `` _scheme``、 `` _host`と `_port``は無視されます。
この関数は、置換名がないためにURLを生成できない場合、:exc: `KeyError`を送出します。余分な置換名は無視されます。
`` route_name``引数と一致する経路オブジェクトが:term: pregenerator`を持つ場合、この関数に渡される * elements``と `** ** kw``引数は拡張されたり変更されたりするかもしれません。
バージョン 1.5 で変更: `` _query``オプションを文字列にして、別のエンコーディングを有効にしてください。
`` _anchor``オプションは生の文字列表現を使う代わりにエスケープされます。
バージョン 1.9 で変更: `` _query``や `` _anchor``がfalse( `` None``や空の文字列など)の場合、生成されたURLには含まれません。
-
route_path
(route_name, *elements, **kw)¶ named:app: Pyramid:term:`ルート設定 `のパス(「相対URL」、別名URL、ホスト、スキーム、ポート)を生成します。
この関数は:meth: `pyramid.request.Request.route_url`と同じ引数を受け取り、同じ働きをします。戻り値のホスト、ポート、およびスキームの情報は省略されます。返された文字列には、script_name、path、queryパラメータ、およびanchorデータのみが存在します。
たとえば、パス `` / {foo} / {bar}
を使って 'foobar'という名前のルートを定義した場合、この `` route_path
:request.route_path('foobar', foo='1', bar='2')
文字列 `` / 1 / 2``を返します。
注釈
`` request.route_path( 'route') ``を呼び出すことは `` request.route_url( 'route'、_app_url = request.script_name) ``を呼び出すことと同じです。 :meth: pyramid.request.Request.route_path`は実際には:meth: pyramid.request.Request.route_url`という観点から実装されています。その結果、 `` ** kw``値の中で `` route_path``に渡された `` _app_url``は無視されます。
-
current_route_url
(*elements, **kw)¶ '現在のルート'に基づいてnamed:app: Pyramid:term:`ルート設定 'の完全修飾URLを生成します。
この関数は:meth: `pyramid.request.Request.route_url`を補足します。これは、 '現在のルート'(要求が生成されたときに一致したルートとして定義)のURLを生成する簡単な方法を提供します。
このメソッドへの引数は、meth: pyramid.request.Request.route_url`に渡された同じ名前のものと同じ意味を持ちます。 ` route_url``が `` _route_name``という名前ではない余分な引数も理解しています。
URLを生成するために使用されるルート名は、 `` _route_name``キーワード引数または `` _route_name``が渡されなかった場合に現在リクエストに関連付けられているルートの名前から取得されます。現在のリクエストからのキーと値:term: matchdict`は kw``引数と組み合わされて newkw``というデフォルトのセットを形成します。次に、 ` request.route_url(route_name、* elements、** newkw) ``が呼び出され、URLが返されます。
次に例を示します。
'現在のルート'にルートパターン `` / foo / {ページ}
があり、現在のURLパスが `` / foo / 1``の場合、matchdictは `` {'page': '1'}になります
。この場合の `` request.current_route_url() ``の結果は `` / foo / 1``になります。'現在のルート'にルートパターン `` / foo / {ページ}
があり、現在のURLパスが `` / foo / 1``の場合、matchdictは `` {'page': '1'}になります
。この場合の `` request.current_route_url(page = '2') ``の結果は `` / foo / 2``になります。`` _route_name``キーワード引数の使い方:ルーティングテーブルが `` / foo / {action} ``という名前の foo 'と / foo / {action} / {page} `` fooaction現在のURLパターンが ` / foo / view``( `` / foo / {action} ``のルートにマッチしている)である場合、matchdict引数を使用して ` fooaction`ルート。このシナリオでは、 ` request.current_route_url(_route_name = 'fooaction'、page = '5') ``は `` / foo / view / 5``のような文字列を返します。
-
current_route_path
(*elements, **kw)¶ 現在のリクエストと一致する:app: Pyramid:term:`ルート設定 'のパス(相対URL、URLからホスト、スキーム、ポートを差し引いたもの)を生成します。
この関数は:meth: `pyramid.request.Request.current_route_url`と同じ引数を受け取り、同じ働きをします。戻り値のホスト、ポート、およびスキームの情報は省略されます。返された文字列には、script_name、path、queryパラメータ、およびanchorデータのみが存在します。
たとえば、現在の要求と一致するルートが `` / {foo} / {bar}
パターンを持つ場合、この呼び出しは `` current_route_path
request.current_route_path(foo='1', bar='2')
文字列 `` / 1 / 2``を返します。
注釈
`` request.current_route_path( 'route') ``を呼び出すことは `` request.current_route_url( 'route'、_app_url = request.script_name) ``を呼び出すことと同じです。 :meth: pyramid.request.Request.current_route_path`は実際には:meth: pyramid.request.Request.current_route_url`という観点から実装されています。その結果、 `` kw``値の中で `` current_route_path``に渡された `` _app_url``は無視されます。
-
static_url
(path, **kw)¶ static:term: asset`の完全修飾URLを生成します。アセットは:meth: `pyramid.config.Configurator.add_static_view:term:コンフィグレーション宣言 '(参照:ref: `static_assets_section)で定義された場所に存在しなければなりません。
例:
request.static_url('mypackage:static/foo.css') => http://example.com/static/foo.css
`` path``引数は、URLが生成されるべきディスク上のファイルまたはディレクトリを指します。 `` path``は、相対パス( `` static / foo.css``など)でも絶対パス( `` / abspath / to / static / foo.css``など) asset specification`(例えば、 mypackage:static / foo.css`)です。
`` ** kw``引数の目的は、:meth: pyramid.request.Request.route_url` ** kw``引数の目的と同じです。その関数のドキュメンテーションを参照して、それに提供できる引数を理解してください。しかし、典型的には、静的アセットURLを生成するときには何も ` * kw``として渡す必要はありません。
この関数は、パス指定に一致する静的ビュー定義が見つからない場合、:exc: `ValueError`を送出します。
-
static_path
(path, **kw)¶ 静的リソースのパス(別名「相対URL」、URLからホスト、スキーム、およびポートを差し引いたもの)を生成します。
この関数は:meth: `pyramid.request.Request.static_url`と同じ引数を受け取り、同じ働きをします。戻り値のホスト、ポート、およびスキームの情報は省略されます。返された文字列には、script_name、path、queryパラメータ、およびanchorデータのみが存在します。
例:
request.static_path('mypackage:static/foo.css') => /static/foo.css
-
resource_url
(resource, *elements, **kw)¶ リクエスト中の `` wsgi.url_scheme``、 `` HTTP_HOST``、 `` SERVER_NAME``と `` SCRIPT_NAME``に加えて:term: `resource`オブジェクトの絶対URLを表す文字列を生成します。このメソッドの全体的な結果は、常にUTF-8でエンコードされた文字列です。
例:
request.resource_url(resource) => http://example.com/ request.resource_url(resource, 'a.html') => http://example.com/a.html request.resource_url(resource, 'a.html', query={'q':'1'}) => http://example.com/a.html?q=1 request.resource_url(resource, 'a.html', anchor='abc') => http://example.com/a.html#abc request.resource_url(resource, app_url='') => /
`` elements``として渡される任意の位置引数は、文字列のUnicodeオブジェクトまたは整数オブジェクトでなければなりません。これらはスラッシュで結合され、生成されたリソースURLに追加されます。渡される各要素は、追加される前にURLで引用されます。いずれかの要素がUnicodeの場合、UTF-8バイトテストに変換されてからURLクォートされます。いずれかの要素が整数の場合、URLクォートされる前に文字列表現に変換されます。
警告
`` elements``引数が指定されていない場合、リソースURLは末尾にスラッシュが付きます。 `` elements``が使われている場合、生成されたURLは末尾のスラッシュで終わらないでしょう。
`` query``が提供されている場合は、URLの末尾に追加されるクエリ文字列を作成するために使用されます。 `` query``の値は、2つのタプルのシーケンスでもよいし、2つのタプル(おそらく辞書)のシーケンスを返す `` .items() ``メソッドを持つデータ構造でもよい。このデータ構造体は:func: pyramid.url.urlencode`関数のドキュメントごとにクエリ文字列に変換されます。これにより、 ` x-www-form-urlencoded``形式のクエリ文字列が生成されます。 `` x-www-form-urlencoded``以外のクエリ文字列は*文字列*の値を `` query``として渡すことで使用できます。この場合、URL引用されます(例:query = "foo bar "は" foo%20bar "になります)。しかし、結果は `` x-www-form-urlencoded``で要求される `` k = v``形式である必要はありません。クエリデータがクエリ文字列に変換されると、先行する ``? ``が先頭に付加され、生成された文字列が生成されたURLに追加されます。
注釈
シーケンスや辞書である `` query``として渡されるPythonのデータ構造体は、 `` doseq``引数を `` `` `` `` `` `` `` `` `` `` `` /真 ``。これは、シーケンスを値として渡すことができ、ak = vペアが各値のクエリ文字列に配置されることを意味します。
キーワード引数 `` anchor``が存在する場合、その文字列表現は生成されたURLの名前付きアンカーとして使用されます(例えば `` anchor``が `` foo``として渡され、リソースURLが `` http :// example.com / resource / url``の場合、生成されるURLは `` http:// example.com / resource / url#foo``です)。
注釈
`` anchor``が文字列として渡される場合は、UTF-8でエンコードされている必要があります。 `` anchor``がUnicodeオブジェクトとして渡された場合、URLに追加される前にUTF-8に変換されます。
`` anchor``と `` query``の両方が指定されている場合、アンカー要素は常に `` http://example.com?foo = 1#bar``のようにクエリ要素に従います。
`` scheme``、 `` host``、 `` port``のいずれかのキーワード引数が渡され、 `` None``以外なら、指定された値は生成されたURLの名前付き部分を置き換えます。たとえば、 `` host = 'foo.com'``を渡し、ホスト置換えなしで生成されたURLが `` http:// example.com / a``である場合、結果は ` http:// foo.com / a`。
`` scheme``が `` https``として渡され、明示的な `` port``が渡されない場合、 `` port``値は `` 443``として渡されたものとみなされます。同様に、 `` scheme``が `` http``として渡され、 `` port``が渡されない場合、 `` port``値は `` 80``として渡されたものとみなされます。この動作を避けるには、 `` scheme``を渡すたびに常に明示的に `` port``を渡してください。
キーワード引数 `` app_url``が渡され、 `` None``でない場合は、デフォルトのリクエストアプリケーションURLではなく、生成されたURLのポート/ホスト名/初期パス部分として使用される文字列でなければなりません。たとえば、 `` app_url = 'http:// foo'``の場合、 `` / baz / bar``のパスを持つリソースのURLは `` http:// foo / baz /バー 。先頭のスキーム、ホスト、ポート、または初期パスのない完全な相対URLを生成する場合は、 ` app_url = '' ``を渡すことができます。リソースパスが `` / baz / bar``のときに `` app_url = '' ``を渡すと `` / baz / bar``が返されます。
`` app_url``が渡され、 `` scheme``、 `` port``、 `` host``のいずれかが渡された場合、 `` app_url``が優先され、 `` scheme``のために渡された値`、` host`、および/または` `port``は無視されます。
渡された `` resource``が `` __resource_url__``メソッドを持っている場合、この関数によって操作されるベースリソースのURL(scheme、host、port、path)を生成するために使われます。
参考
参照:ref: `overriding_resource_url_generation`を参照してください。
`` route_name``が渡された場合、この関数はURL生成を `` route_url``関数に委譲します。 `` resource_url(someresource、 'element1'、 'element2'、query = {'a':1}、route_name = 'blogentry') ``を呼び出すことは、
traversal_path = request.resource_path(someobject) url = request.route_url( 'blogentry', 'element1', 'element2', _query={'a':'1'}, traverse=traversal_path, )
`` traverse`のような `` * remainder``のstararg値を持つルートが指定されている場合は、 `` route_name``を渡すのが賢明です。それ以外の場合、残りの値は無視されます。
デフォルトでは、 `` route_url``が呼び出されると、リソースパスの値は `` traverse``の名前として渡されます。ルートに `` * stararg``値が最後にある場合は、別の `` route_remainder_name``値を渡すことでこれに影響を与えることができます。例えば、あなたが置きたいルートパターンが `` * subpath``を持つならば、stararg ala `` / foo * subpath``
request.resource_url( resource, route_name='myroute', route_remainder_name='subpath' )
`` route_name``が渡された場合、 `` route_kw``を渡すこともできます。これは、 `` route_url``に追加のキーワード引数として渡されます。 'resource_url(someresource、' element1 '、' element2 '、route_name =' blogentry '、route_kw = {' id ':' 4 '}、_query = {' a ':' 1 '}) ``と言っているのは、に::
traversal_path = request.resource_path_tuple(someobject) kw = {'id':'4', '_query':{'a':'1'}, 'traverse':traversal_path} url = request.route_url( 'blogentry', 'element1', 'element2', **kw, )
`` route_kw``または `` route_remainder_name``が渡されても `` route_name``が渡されない場合、 `` route_kw``と `` route_remainder_name``は無視されます。 `` route_name``が渡された場合、渡されたリソースの `` __resource_url__``メソッドは無条件に無視されます。この機能は、独自のURLを生成するリソースと互換性がありません。
注釈
使用される:term: resource`が:term: traversal`の結果である場合、それは:term: `location`を意識していなければなりません。リソースは:term: `URL dispatch`のコンテキストでもあります。このようにして見つけられたコンテキストは、位置を認識する必要はありません。
注釈
リクエスト環境(WSGI環境キー `` HTTP_X_VHM_ROOT``の値)に 'virtual root path'が存在し、リソースが:term: `traversal`で取得された場合、URLパスには仮想ルートは含まれません接頭辞(生成されたURLの左側から削除されます)。
注釈
下位互換性を保つために、このメソッドは `` model_url``メソッドの別名にもなります。
バージョン 1.3 で変更: `` app_url``キーワード引数を追加しました。
バージョン 1.5 で変更: `` query``オプションを文字列にして、別のエンコーディングを有効にします。
`` anchor``オプションは生の文字列表現を使用する代わりにエスケープされます。
`` route_name``、 `` route_kw``、および `` route_remainder_name``のキーワード引数を追加しました。
バージョン 1.9 で変更: `` query``や `` anchor``がfalse( `` None``や空の文字列など)の場合、生成されたURLには含まれません。
-
resource_path
(resource, *elements, **kw)¶ :term: `resource`のためのパス(別名「相対URL」、URLからホスト、スキーム、およびポートを引いたもの)を生成します。
この関数は:meth: `pyramid.request.Request.resource_url`と同じ引数を受け取り、同じ働きをします。戻り値のホスト、ポート、およびスキームの情報は省略されます。返された文字列には、script_name、path、queryパラメータ、およびanchorデータのみが存在します。
注釈
`` request.resource_path(resource)
を呼び出すことは `` request.resource_path(resource、app_url = request.script_name) ``を呼び出すことと同じです。 :meth: `pyramid.request.Request.resource_path`は実際には:meth:` pyramid.request.Request.resource_url`という観点から実装されています。その結果、 `` ** kw``値の中で `` route_path``に渡された `` app_url``は無視されます。 `` scheme
、 `` host``、 `` port``も無視されます。
-
json_body
¶ このプロパティは、リクエスト本体のJSONでデコードされた変形を返します。リクエストボディが整形式JSONでないか、このリクエストに関連付けられたボディがない場合、このプロパティは例外を発生させます。
参考
ref: `request_json_body`も参照してください。
-
set_property
(callable, name=None, reify=False)¶ 要求インスタンスに呼び出し可能またはプロパティ記述子を追加します。
プロパティは、属性とは異なり、アクセス時に基本となる呼び出し可能オブジェクトを実行することによって遅延評価されます。これらの機能が使用されなくなった場合は、コストをかけずにオブジェクトに機能を追加するのに便利です。
プロパティは、 `` reify = True``を設定することによって、:class: `pyramid.decorator.reify`デコレータを介して評価され、評価の結果がキャッシュされるようにすることもできます。したがって、プロパティの値は、オブジェクトの存続期間中に一度だけ計算されます。
`` callable``は、リクエストを単一の位置パラメータとして受け入れる呼び出し可能なものでもよいし、プロパティ記述子でもよい。
`` callable``がプロパティ記述子の場合、 `` name``が `` None``または `` reify``が `` True``の場合、 `` ValueError``が発生します。
`` name``がNoneの場合、プロパティの名前は `` callable``の名前から計算されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
def _connect(request): conn = request.registry.dbsession() def cleanup(request): # since version 1.5, request.exception is no # longer eagerly cleared if request.exception is not None: conn.rollback() else: conn.commit() conn.close() request.add_finished_callback(cleanup) return conn @subscriber(NewRequest) def new_request(event): request = event.request request.set_property(_connect, 'db', reify=True)
サブスクライバは実際にデータベースに接続せず、 `` request.db``でアクセスすると接続を作成するAPIを提供するだけです。 reqifyのおかげで、 `` request.db``が何度もアクセスされたとしても、リクエストごとに1つの接続しか行われません。
このパターンは、サブクラス化することなく `` request``オブジェクトを拡張する方法を提供します。これは、拡張機能の作成者にとって有益なことです。
バージョン 1.3 で追加.
-
GET
¶ QUERY_STRINGからすべての変数を含むMultiDictを返します。
-
POST
¶ フォーム要求からすべての変数を含むMultiDictを返します。非フォームリクエストに対して空のdict-likeオブジェクトを返します。
フォームリクエストは通常POSTリクエストですが、適切なContent-Typeを持つ他のリクエストもサポートされています。
-
ResponseClass
¶ pyramid.response.Response
のエイリアス
-
accept
¶ `` Accept``ヘッダを表すプロパティです。
(:rfc: `RFC 7231、セクション5.3.2 <7231#セクション-5.3.2>)
要求environのヘッダー値が解析され、ヘッダーを表す新しいオブジェクトがプロパティの値を取得するたびに作成されます。 (* set と del *はリクエストenvironのヘッダ値を変更し、解析を伴わない)
-
accept_charset
¶ `` Accept-Charset``ヘッダを表すプロパティです。
(:rfc: `RFC 7231、section 5.3.3 <7231#section-5.3.3>)
要求environのヘッダー値が解析され、ヘッダーを表す新しいオブジェクトがプロパティの値を取得するたびに作成されます。 (* set と del *はリクエストenvironのヘッダ値を変更し、解析を伴わない)
-
accept_encoding
¶ `` Accept-Encoding``ヘッダを表すプロパティです。
(:rfc: `RFC 7231、セクション5.3.4 <7231#セクション5.3.4>)
要求environのヘッダー値が解析され、ヘッダーを表す新しいオブジェクトがプロパティの値を取得するたびに作成されます。 (* set と del *はリクエストenvironのヘッダ値を変更し、解析を伴わない)
-
accept_language
¶ `` Accept-Language``ヘッダを表すプロパティです。
(:rfc: `RFC 7231、セクション5.3.5 <7231#セクション-5.3.5>)
要求environのヘッダー値が解析され、ヘッダーを表す新しいオブジェクトがプロパティの値を取得するたびに作成されます。 (* set と del *はリクエストenvironのヘッダ値を変更し、解析を伴わない)
-
application_url
¶ SCRIPT_NAMEを含むURL(PATH_INFOまたはクエリ文字列なし)
-
as_bytes
(skip_body=False)¶ この要求を表すHTTPバイトを返します。 skip_bodyがTrueの場合は、本文を除外します。 skip_bodyが1より大きい整数の場合、その長さがその数よりも大きい場合にのみ本文をスキップします。
`` Authorization``ヘッダを取得して設定します( HTTP spec section 14.8 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8> `_)。 ` parse_auth``と `` serialize_auth``を使って変換します。
-
classmethod
blank
(path, environ=None, base_url=None, headers=None, POST=None, **kw)¶ 指定されたパス(パスはurlencodeされている必要があります)とenvironからの任意のキーを使用して、ブランクリクエストenviron(およびRequestラッパー)を作成します。
パスはpath_infoになり、クエリ文字列は分割されて使用されます。
必要なキーはすべて環境に追加されますが、渡す値が優先されます。 base_urlを渡すと、wsgi.url_scheme、HTTP_HOST、およびSCRIPT_NAMEがその値から入力されます。
余分なキーワードは `` __init__``に渡されます。
-
body
¶ 要求本体の内容を返します。
-
body_file
¶ リクエストの入力ストリーム(wsgi.input)。このプロパティを設定すると、content_lengthとseekableフラグがリセットされます(req.body_file_rawの設定とは異なります)。
-
body_file_raw
¶ 環境内の `` wsgi.input``キーを取得して設定します。
-
body_file_seekable
¶ 要求の本体(wsgi.input)をシーク可能なファイルのようなオブジェクトとして取得します。ミドルウェアとルーティングアプリケーションは、.body_fileを超えてこの属性を使用する必要があります。
この値にアクセスすると、CONTENT_LENGTHも更新されます。
-
cache_control
¶ Cache-Controlヘッダを取得/設定/変更する( `HTTP spec section 14.9 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9> `_)
-
call_application
(application, catch_exc_info=False)¶ 与えられたWSGIアプリケーションを呼び出し、 ``(status_string、headerlist、app_iter) ``を返します。
もしそれがあれば `` app_iter.close() ``を呼び出すようにしてください。
catch_exc_infoが真であれば、 ``(status_string、headerlist、app_iter、exc_info) ``を返します.4番目の項目はNoneであるかもしれませんが、例外があった場合は戻りません。これを行わずに例外が発生した場合、例外は直接発生します。
-
client_addr
¶ 有効なクライアントのIPアドレスを文字列で指定します。 `` HTTP_X_FORWARDED_FOR``ヘッダがWSGI環境に存在する場合、この属性はそのヘッダに存在するクライアントIPアドレスを返します(ヘッダ値が `` 192.168.1.1、192.168.1.2``の場合、値は `` 192.168.1.1``)。環境に `` HTTP_X_FORWARDED_FOR``ヘッダが存在しない場合、この属性は `` REMOTE_ADDR``ヘッダの値を返します。 `` REMOTE_ADDR``ヘッダーが設定されていない場合、この属性は値 `` None``を返します。
警告
ユーザエージェントは、通常のHTTPヘッダであるため、他人のIPや `` HTTP_X_FORWARDED_FOR``に任意の文字列を置くことは可能です。転送プロキシは、不正な値(プライベートIPアドレスなど)も提供する可能性があります。 `` HTTP_X_FORWARDED_FOR``が正しい値を持っていることが確かでない限り、このメソッドの結果を盲目的に信頼して有効なデータを提供することはできません。このためには、WSGIサーバーが信頼できるプロキシの背後にある必要があります。
-
content_length
¶ `` Content-Length``ヘッダを取得して設定します( `HTTP spec section 14.13 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13> `_)。 intを使用して変換します。
-
content_type
¶ コンテンツタイプを返すが、パラメータ(charsetのようなものばかりでなく、 `` application / atom + xml; type = entry``の型のようなもの)
このプロパティを設定すると、パラメータを含めることができます。または、値にパラメータを含めない場合、既存のパラメータは保持されます。
リクエストに含まれるCookieの辞書を返します。
-
copy
()¶ 要求と環境オブジェクトをコピーします。
これは、wsgi.inputを除く浅いコピーのみを行います。
-
copy_body
()¶ 別のリクエストオブジェクトと共有される可能性があり、望ましくない場合にボディをコピーします。
これは、本文をBytesIOオブジェクト(req.bodyの設定を介して)または一時ファイルにコピーします。
-
copy_get
()¶ 要求と環境オブジェクトをコピーしますが、途中でこの要求をGETにします。これがPOST要求(または他の動詞)であれば、それはGETになり、要求本体は破棄されます。
-
date
¶ `` Date``ヘッダを取得して設定します( `HTTP spec section 14.8 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8> `_)。 HTTP日付を使用して変換します。
-
domain
¶ ホスト値のドメイン部分を返します。に相当:
domain = request.host if ':' in domain and domain[-1] != ']': # Check for ] because of IPv6 domain = domain.rsplit(':', 1)[0]
これは、環境内の `` HTTP_HOST``値のドメイン部分が存在する場合はそれに相当し、そうでない場合は環境内の `` SERVER_NAME``値と同等です。たとえば、環境に `` foo.example.com:8000``の `` HTTP_HOST``値が含まれている場合、 `` request.domain``は `` foo.example.com``を返します。
要求にこの値を設定することはできません。ホスト値を設定するには、代わりに:meth: `webob.request.Request.host`を使用します。
-
classmethod
from_bytes
(b)¶ HTTPバイトデータから要求を作成します。リクエストの後にバイトに余分なデータが含まれている場合は、ValueErrorを発生させます。
-
classmethod
from_file
(fp)¶ ファイル形式のオブジェクトから要求を読み込みます( `` .read(size) ``と `` .readline() ``を実装する必要があります)。
要求がPOSTまたはPUTで、Content-Lengthがない場合は、ファイル全体が読み取られます。ただし、ファイルの最後ではなく、要求の最後まで読み取られます。
これは `` str(req) ``で表されるリクエストを読み込みます。すべての有効なHTTP要求を適切に読み取ることができません。
-
get_response
(application=None, catch_exc_info=False)¶ `` .call_application(application)
と同様に、 `` .status
、 `` .headers``、および `` .body``属性を持つレスポンスオブジェクトを返します。これは `` self.ResponseClass``を使って返すレスポンスオブジェクトのクラスを見つけます。
`` application``が与えられていなければ、これは `` self.make_default_send_app() ``にリクエストを送ります
-
headers
¶ すべてのリクエストヘッダは、大文字と小文字を区別しないディクショナリのようなオブジェクトです。
-
host
¶ HTTP_HOSTでホスト名を指定し、SERVER_NAMEにフォールバックする
-
host_port
¶ 有効なサーバーのポート番号を文字列で指定します。 HTTP_HOST``ヘッダがWSGI環境に存在する場合、この属性はそのヘッダに存在するポート番号を返します。 `` HTTP_HOST``ヘッダーが存在しても明示的なポート番号がない場合:WSGIのURLスキームが"https "の場合、この属性は"443 "を返します。属性は"80 "を返します。環境に `` HTTP_HOST``ヘッダが存在しない場合、この属性は `` SERVER_PORT``ヘッダ(存在することが保証されています)の値を返します。
-
host_url
¶ ホスト経由のURL(パスなし)
-
http_version
¶ 環境内の `` SERVER_PROTOCOL``キーを取得して設定します。
-
if_match
¶ `` If-Match``ヘッダを取得して設定します( `HTTP spec section 14.24 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.24> `_)。それをEtagとして変換します。
-
if_modified_since
¶ `` If-Modified-Since``ヘッダを取得して設定します( `HTTP spec section 14.25 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.25> `_)。 HTTP日付を使用して変換します。
-
if_none_match
¶ `` If-None-Match``ヘッダーを取得して設定します( `HTTP spec section 14.26 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.26> `_)。それをEtagとして変換します。
-
if_range
¶ `` If-Range``ヘッダを取得して設定します( `HTTP spec section 14.27 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.27> `_)。 IfRangeオブジェクトを使用して変換します。
-
if_unmodified_since
¶ `` If-Unmodified-Since``ヘッダーを取得して設定します( `HTTP spec section 14.28 <http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.28> `_)。 HTTP日付を使用して変換します。
-
is_body_readable
¶ webob.is_body_readableは、CONTENT_LENGTHがなくても入力ストリームを読み取ることができることを示すフラグです。
-
is_body_seekable
¶ 環境内の `` webob.is_body_seekable``キーを取得して設定します。
-
is_xhr
¶ X-Requested-Withヘッダーがあり、 `` XMLHttpRequest``と等しいですか?
注意:これはすべてのXMLHttpRequestリクエストによって設定されるものではなく、設定するJavascriptライブラリを使用している場合(または手動でヘッダを設定する場合)にのみ設定されます。現在、PrototypeとjQueryはこのヘッダーを設定することが知られています。
-
json
¶ JSONとしてリクエストの本文にアクセスする
-
json_body
JSONとしてリクエストの本文にアクセスする
-
localizer
ローカライザーを返す便利なプロパティ
-
make_body_seekable
()¶ This forces
environ['wsgi.input']
to be seekable. That means that, the content is copied into a BytesIO or temporary file and flagged as seekable, so that it will not be unnecessarily copied again.After calling this method the .body_file is always seeked to the start of file and .content_length is not None.
The choice to copy to BytesIO is made from
self.request_body_tempfile_limit
-
make_tempfile
()¶ Create a tempfile to store big request body. This API is not stable yet. A 'size' argument might be added.
-
max_forwards
¶ Gets and sets the
Max-Forwards
header (HTTP spec section 14.31). Converts it using int.
-
method
¶ Gets and sets the
REQUEST_METHOD
key in the environment.
-
params
¶ A dictionary-like object containing both the parameters from the query string and request body.
-
path
¶ The path of the request, without host or query string
-
path_info
¶ Gets and sets the
PATH_INFO
key in the environment.
-
path_info_peek
()¶ Returns the next segment on PATH_INFO, or None if there is no next segment. Doesn't modify the environment.
-
path_info_pop
(pattern=None)¶ 'Pops' off the next segment of PATH_INFO, pushing it onto SCRIPT_NAME, and returning the popped segment. Returns None if there is nothing left on PATH_INFO.
Does not return
''
when there's an empty segment (like/path//path
); these segments are just ignored.Optional
pattern
argument is a regexp to match the return value before returning. If there is no match, no changes are made to the request and None is returned.
-
path_qs
¶ The path of the request, without host but with query string
-
path_url
¶ The URL including SCRIPT_NAME and PATH_INFO, but not QUERY_STRING
-
pragma
¶ Gets and sets the
Pragma
header (HTTP spec section 14.32).
-
query_string
¶ Gets and sets the
QUERY_STRING
key in the environment.
-
range
¶ Gets and sets the
Range
header (HTTP spec section 14.35). Converts it using Range object.
-
referer
¶ Gets and sets the
Referer
header (HTTP spec section 14.36).
-
referrer
¶ Gets and sets the
Referer
header (HTTP spec section 14.36).
-
relative_url
(other_url, to_application=False)¶ Resolve other_url relative to the request URL.
If
to_application
is True, then resolve it relative to the URL with only SCRIPT_NAME
-
remote_addr
¶ Gets and sets the
REMOTE_ADDR
key in the environment.
-
remote_user
¶ Gets and sets the
REMOTE_USER
key in the environment.
-
remove_conditional_headers
(remove_encoding=True, remove_range=True, remove_match=True, remove_modified=True)¶ Remove headers that make the request conditional.
These headers can cause the response to be 304 Not Modified, which in some cases you may not want to be possible.
This does not remove headers like If-Match, which are used for conflict detection.
-
request_iface
= <InterfaceClass pyramid.interfaces.IRequest>¶
-
response
[ソース] This attribute is actually a "reified" property which returns an instance of the
pyramid.response.Response
. class. The response object returned does not exist until this attribute is accessed. Subsequent accesses will return the same Response object.The
request.response
API is used by renderers. A render obtains the response object it will return from a view that uses that renderer by accessingrequest.response
. Therefore, it's possible to use therequest.response
API to set up a response object with "the right" attributes (e.g. by callingrequest.response.set_cookie()
) within a view that uses a renderer. Mutations to this response object will be preserved in the response sent to the client.
-
scheme
¶ Gets and sets the
wsgi.url_scheme
key in the environment.
-
script_name
¶ Gets and sets the
SCRIPT_NAME
key in the environment.
-
send
(application=None, catch_exc_info=False)¶ `` .call_application(application)
と同様に、 `` .status
、 `` .headers``、および `` .body``属性を持つレスポンスオブジェクトを返します。これは `` self.ResponseClass``を使って返すレスポンスオブジェクトのクラスを見つけます。
`` application``が与えられていなければ、これは `` self.make_default_send_app() ``にリクエストを送ります
-
server_name
¶ Gets and sets the
SERVER_NAME
key in the environment.
-
server_port
¶ Gets and sets the
SERVER_PORT
key in the environment. Converts it using int.
-
session
[ソース] Obtain the session object associated with this request. If a session factory has not been registered during application configuration, a
pyramid.exceptions.ConfigurationError
will be raised
-
text
¶ Get/set the text value of the body
-
upath_info
¶ Gets and sets the
PATH_INFO
key in the environment.
-
url
¶ The full request URL, including QUERY_STRING
-
url_encoding
¶ Gets and sets the
webob.url_encoding
key in the environment.
-
urlargs
¶ Return any positional variables matched in the URL.
Takes values from
environ['wsgiorg.routing_args']
. Systems likeroutes
set this value.
-
urlvars
¶ Return any named variables matched in the URL.
Takes values from
environ['wsgiorg.routing_args']
. Systems likeroutes
set this value.
-
uscript_name
¶ Gets and sets the
SCRIPT_NAME
key in the environment.
-
user_agent
¶ Gets and sets the
User-Agent
header (HTTP spec section 14.43).
-
注釈
For information about the API of a multidict structure (such as
that used as request.GET
, request.POST
, and request.params
),
see pyramid.interfaces.IMultiDict
.
-
apply_request_extensions
(request)[ソース]¶ Apply request extensions (methods and properties) to an instance of
pyramid.interfaces.IRequest
. This method is dependent on therequest
containing a properly initialized registry.After invoking this method, the
request
should have the methods and properties that were defined usingpyramid.config.Configurator.add_request_method()
.