(機械翻訳) pyramid.config
¶
-
class
Configurator
(registry=None, package=None, settings=None, root_factory=None, authentication_policy=None, authorization_policy=None, renderers=None, debug_logger=None, locale_negotiator=None, request_factory=None, response_factory=None, default_permission=None, session_factory=None, default_view_mapper=None, autocommit=False, exceptionresponse_view=<function default_exceptionresponse_view>, route_prefix=None, introspection=True, root_package=None)[ソース]¶ Configuratorは、:app: Pyramid:term:`アプリケーションレジストリ 'を設定するために使われます。
コンフィギュレータのライフサイクルはコンテキストマネージャを使って:meth: pyramid.config.Configurator.begin`と:meth: pyramid.config.Configurator.end`と:meth: pyramid.config .Configurator.commit。
with Configurator(settings=settings) as config: config.add_route('home', '/') app = config.make_wsgi_app()
`` registry``引数が `` None``でなければ、設定するレジストリを表す:class: pyramid.registry.Registry`クラスのインスタンスでなければなりません。 ` registry``が `` None``の場合、コンフィギュレータは:class: `pyramid.registry.Registry`インスタンス自体を作成します。それ以外の場合は実行されないデフォルト設定も実行されます。構築後、コンフィギュレータを使用してレジストリに設定を追加することができます。
警告
`` registry``に上記のクラスインスタンスが割り当てられている場合、 `` package``を除いて、他のすべてのコンストラクタ引数は無視されます。
`` package``引数が渡された場合、それはPython:term: package`(例えば sys.modules ['thepackage'] )やa:term:`点線のPython名 `同じに。この値は、 ` renderer``引数を受け入れるメソッドなど、さまざまな設定メソッドに渡される相対パスを絶対パスに変換するための基礎として使用されます。 `` None``が渡された場合(デフォルト)、パッケージは `` Configurator``コンストラクタの* caller *が存在するPythonパッケージとみなされます。
`` root_package``が渡された場合は、インクルードされたパッケージがメインの `` Configurator``が作成されたパッケージに関連するリソースを見つける方法として、設定階層に伝播します。 `` None``が渡された場合(デフォルト)、 `` root_package``は `` package``引数から派生します。 `` package``属性は、:meth: .include`を使用するときに常に含まれるパッケージを指していますが、 `root_package``は変更されません。
`` settings``引数が渡された場合は、このアプリケーションの:term: deployment settings`を表すPython辞書でなければなりません。これらは後で:attr: `pyramid.registry.Registry.settings`属性(別名 request.registry.settings`)を使って取り出すことができます。
`` root_factory``引数が渡された場合は、アプリケーションのデフォルト:term: root factory`またはa:term: dotted Python name`を同じオブジェクトにする必要があります。 `` None``の場合、デフォルトのルートファクトリが使用されます。
`` authentication_policy``が渡された場合、それは:term: `認証ポリシー`またはa:term: `ドット付きPython名`のインスタンスでなければなりません。
`` authorization_policy``が渡された場合、それは:term: `認証ポリシー`またはa:term: `ドット付きPython名`のインスタンスでなければなりません。
注釈
認証ポリシーが指定されている場合(認証には認証が必要)、認証ポリシーを指定せずに `` ConfigurationError``が発生します。
`` renderers``が `` None``(デフォルト)の場合、term: `renderer`ファクトリのデフォルトセットが使用されます。そうでなければ、このアプリケーションに設定されるべきレンダラーファクトリのセットを表すタプルのリストと、meth: `pyramid.config.Configurator.add_renderer`に渡される位置値のセットを表す各タプルが必要です。
`` debug_logger``が渡されないと、ロガーにログするデフォルトのデバッグロガーが使用されます(ロガー名はこのコンフィギュレータの* caller *のパッケージ名になります)。それが渡された場合、それは:class: `logging.Logger`(PEP 282)標準ライブラリクラスまたはPythonロガー名のインスタンスでなければなりません。デバッグロガーは:app: `Pyramid`自身が警告と認可のデバッグ情報を記録するために使用します。
`` locale_negotiator``が渡された場合は、:term: locale negotiator`の実装か、a:term: dotted Python name`を同じものにする必要があります。参照:ref: `custom_locale_negotiator`を参照してください。
`` request_factory``が渡された場合は、:term: request factory`実装か、:term: dotted Python name`を同じものにする必要があります。 ref: changing_the_request_factory`を参照してください。デフォルトでは ` None``です。これは、デフォルトのリクエストファクトリを使用することを意味します。
`` response_factory``が渡された場合は、:term: 応答ファクトリ`の実装か、:term: `ドット付きのPythonの名前 'でなければなりません。参照:ref: `changing_the_response_factory`を参照してください。デフォルトでは ` None``です。これはデフォルトのレスポンスファクトリを使用することを意味します。
`` default_permission``が渡された場合は、このコンフィグレータに対して実行されたすべてのビュー設定登録のデフォルトパーミッションとして使用される:term: permission`文字列でなければなりません。パーミッション文字列の例: ` 'view' ``。既定のアクセス許可を追加すると、アプリケーションポリシーが特定のビューに対して何らかの例外を必要としない限り、明示的なアクセス許可で各ビュー構成を保護する必要はありません。デフォルトでは、 `` default_permission``は `` None``です。つまり、明示的にパーミッションを宣言していないビューの設定は、完全に匿名のユーザ(常に有効な権限ポリシーは無視されます)によって常に実行可能です。
参考
参照:ref: `setting_a_default_permission`を参照してください。
`` session_factory``が渡された場合、それは:term: session factory`インターフェースを実装するオブジェクトでなければなりません。デフォルト以外の値が渡された場合、 ` request.session``がアクセスされたときに `` session_factory``がセッションオブジェクトを作成するために使われます。同じ結果は、meth: pyramid.config.Configurator.set_session_factory`を呼び出すことで実現できることに注意してください。デフォルトでは、この引数は ` None``であり、設定中に `` set_session_factory``が後で呼び出されない限り、セッションファクトリが設定されない(したがって、 `` request.session``にアクセスするとエラーが発生します)ことを示します。
`` autocommit``が `` True``の場合、コンフィギュレータ上で呼び出されたすべてのメソッドは即座のアクションを引き起こし、コンフィグレーションコンフリクト検出は使用されません。 `` autocommit``が `` False``の場合、コンフィギュレータのほとんどのメソッドは:meth: pyramid.config.Configurator.commit`が呼び出されるまで、アクションを延期します。 :meth: `pyramid.config.Configurator.commit`が呼び出されたとき、 autocommit``が True``でなければ、呼び出されたメソッドが暗示するアクションは設定の競合をチェックされます。競合が検出された場合、 ` ConfigurationConflictError``が発生します。 Calling:meth: `pyramid.config.Configurator.make_wsgi_app`は、常に最後のコミットを意味します。
`` default_view_mapper``が渡された場合、デフォルトではterm: view mapper`ファクトリとして使用され、それ以外のものを指定しないビュー設定の場合(class: pyramid.interfaces.IViewMapperFactory`を参照してください)。 `` default_view_mapper``が渡されないと、スーパーディファクトビューマッパーが使用されます。
`` exceptionresponse_view``が渡された場合は、:term: view callable`または None``でなければなりません。呼び出し可能なビューの場合は、:term: `exception response`が発生したときに呼び出すことができる例外ビューとして使用されます。 ` exceptionresponse_view``が `` None``の場合、例外レスポンスビューは登録されず、すべての発生した例外レスポンスはPyramidの呼び出し側にバブリングされます。デフォルトでは、 `` pyramid.httpexceptions.default_exceptionresponse_view``関数が `` exceptionresponse_view``として使われます。
`` route_prefix``が渡された場合、:meth: `pyramid.config.Configurator.add_route`で追加されたすべてのルートは、パターンの前に指定されたパスを持ちます。
`` introspection``が渡された場合は、ブール値でなければなりません。それが `` True``の場合、アクション中のイントロスペクション値は、デバッグツールバーのようなツールで使用するために保持されます。それが `` False``の場合、登録によって提供されるイントロスペクション値は無視されます。デフォルトでは `` True``です。
バージョン 1.1 で追加: `` exceptionresponse_view``引数です。
バージョン 1.2 で追加: `` route_prefix``引数です。
バージョン 1.3 で追加: `` introspection``引数です。
バージョン 1.6 で追加: `` root_package``引数です。 `` response_factory``引数です。
バージョン 1.9 で追加: スレッドローカル設定を暗黙的なコミットを伴うさらなる設定に利用できるようにするために、コンテキストマネージャとしてコンフィギュレータを `` with``ステートメントとともに使用する能力。
:methodcategory: 設定状態を制御する
-
commit
()[ソース]¶ 保留中の構成アクションをコミットします。保留中の設定アクションで設定の競合が検出された場合、このメソッドは:exc: `ConfigurationConflictError`を送出します。このエラーのトレースバック内には、コンフリクトの原因に関する情報が含まれます。通常、ファイル名と構成の競合の原因の行番号が含まれます。
警告
手動で `` commit() ``を呼び出す前に、非常に注意深く考えるべきです。特に、再利用可能な設定方法の一部ではありません。通常は、アドオンの特定の側面を無効にするためには、構成の最後にアプリケーション作成者が行う必要があります。
-
begin
(request=<object object>)[ソース]¶ アプリケーションまたはテストの構成が開始されたことを示します。これは、このコンフィグレータの `` registry``属性によって暗示された:term: アプリケーションレジストリ 'と:term: thread local`に `` request``引数によって暗示された:term: request`を含む辞書をプッシュします。 stack:さまざまな:mod: `pyramid.threadlocal API関数によって参照されます。
`` request``が指定されておらず、コンフィギュレータが所有するレジストリがすでに現在のスレッドローカルレジストリとしてプッシュされている場合、このメソッドは現在のスレッドローカル要求を変更しません。
バージョン 1.8 で変更: 現在のスレッドローカルレジストリが変更されない場合、現在のスレッドローカルリクエストは伝播されます。
-
end
()[ソース]¶ アプリケーションまたはテスト構成が終了したことを示します。これは:term: thread local`スタックにプッシュされた最後の値をポップし(通常 `begin``メソッドによって)、その値を返します。
-
include
(callable, route_prefix=None)[ソース]¶ 必須のアプリケーションの拡張性をサポートするために、呼び出し可能な構成を含めます。
警告
1.2より前の:app: Pyramid`のバージョンでは、この関数は `* callables``を受け入れましたが、これは単一の呼び出し可能関数をサポートするように変更されました。
設定可能な呼び出しは、 `` config``という名前の単一の引数を受け入れる呼び出し可能でなければなりません。これは:term: `Configurator`のインスタンスになります。ただし、このメソッドを呼び出すコンフィグレータインスタンスと同じではないことに注意してください。 callableを呼び出した結果として実行されるコードは、渡されたコンフィグレータのメソッドを呼び出して、コンフィグレーション状態を追加する必要があります。呼び出し可能な関数の戻り値は無視されます。
このメソッドに `` callable``引数で指定できる値は、呼び出し可能なPythonオブジェクト、または呼び出し可能なPythonオブジェクトに解決するany:term: ドット付きPython名`です。これはPython:term: `module`でもかまいません。この場合、モジュールは呼び出し可能な名前の `includeme``が検索され、設定可能な呼び出しとして扱われます。
たとえば、以下の `` includeme``関数が `` myapp.myconfig``という名前のモジュールに存在する場合、
1 2 3 4 5 6 7 8
# myapp.myconfig module def my_view(request): from pyramid.response import Response return Response('OK') def includeme(config): config.add_view(my_view)
Pyramidアプリケーションに以下のように組み込むことができます:
1 2 3 4 5
from pyramid.config import Configurator def main(global_config, **settings): config = Configurator() config.include('myapp.myconfig.includeme')
この関数の名前は `` includeme``なので、関数名は点線の名前の参照からも省略することができます:
1 2 3 4 5
from pyramid.config import Configurator def main(global_config, **settings): config = Configurator() config.include('myapp.myconfig')
含まれている呼び出し可能ファイルが、同じ構成パラメーターで何かを登録して構成競合を引き起こす場合、組み込まれた構成ステートメントは、ローカル構成ステートメントによってオーバーライドされます。
`` route_prefix``が指定された場合、それは文字列でなければなりません。インクルードされた呼び出し可能ファイル内の:meth: pyramid.config.Configurator.add_route`への呼び出しには、 `route_prefix``の値の接頭辞が付きます。これは、同じルート名を維持しながら、インクルードされた呼び出し可能な作成者が意図した場所とは異なる場所に一連のルートをマウントするのに役立ちます。例えば:
1 2 3 4 5 6 7 8
from pyramid.config import Configurator def included(config): config.add_route('show_users', '/show') def main(global_config, **settings): config = Configurator() config.include(included, route_prefix='/users')
上記の設定では、 `` show_users``ルートは、 `` / show``の代わりに `` / users / show``の効果的なルートパターンを持ちます。なぜなら、 `` route_prefix``引数はパターンの前に付加されるからです。
バージョン 1.2 で追加: `` route_prefix``パラメータ。
バージョン 1.9 で変更: 含まれている関数は、実行中に:meth: pyramid.config.Configurator.begin`と:meth: pyramid.config.Configurator.end`の呼び出しでラップされます。
-
make_wsgi_app
()[ソース]¶ すべてのリスナーに:class: pyramid.events.ApplicationCreated`イベントを送信し、この設定のレジストリを:attr: pyramid.config.global_registries`に追加し、:app: Pyramid WSGIアプリケーションを返します。コミットされた構成状態を表す。
-
scan
(package=None, categories=None, onerror=None, ignore=None, **kw)[ソース]¶ Pythonパッケージとそのサブパッケージのいずれかを、class: pyramid.view.view_config`のように:term: configuration decoration`とマークされたオブジェクトに対してスキャンします。見つかった装飾されたオブジェクトは、現在の構成状態に影響します。
`` package``引数は、Python:term: package`またはモジュールオブジェクト(または:term:そのようなパッケージやモジュールを指す 点在するPython名 ')でなければなりません。 ` package``が `` None``の場合、* caller *のパッケージが使われます。
`` categories``引数が提供されている場合は、スキャン中に使用する:term: Venusian 'スキャンカテゴリ'でなければなりません。この議論を提供することはしばしば必要ではない。スキャンカテゴリを指定することは非常に高度な使い方です。デフォルトでは、 `` categories``は `` None``です。これは、すべてのVenusianデコレータコールバックを実行します:class: pyramid.view.view_config`のようなapp: Pyramid`関連のデコレータ。明示的なカテゴリのセットを使用してスキャンを制限する方法の詳細は、:term: `Venusian`のドキュメントを参照してください。
`` onerror``引数が与えられれば、それはVenusの `` onerror``コールバック関数でなければなりません。 onerror関数は:meth: venusian.Scanner.scan`に渡され、スキャン処理中に例外が発生したときのエラー動作に影響を与えます。 ` onerror``コールバックの詳細については、:term: `Venusian`のドキュメントを参照してください。
`` ignore``引数が与えられれば、Venusianの `` ignore``値でなければなりません。 `` ignore``引数を指定すると、スキャン中にスキャンが特定のモジュール、パッケージ、またはグローバルオブジェクトを無視することができます。 `` ignore``は、文字列か呼び出し可能なもの、または文字列や呼び出し可能なものを含むリストです。 `` ignore``の最も簡単な使い方は、点線の名前への完全なパスを与えることによってモジュールまたはパッケージを提供することです。たとえば、 `` config.scan(ignore = 'my.module.subpackage') ``は、スキャン中に `` my.module.subpackage``パッケージを無視するので、サブパッケージとそのサブモジュールが存在しないようになりますインポートおよびスキャンします。 `` ignore``引数の詳細については、:term: `Venusian`のドキュメントを参照してください。
`` scan``を実行するために、PyramidはVenusianの `` Scanner``オブジェクトを作成します。 `` kw``引数は、金星の `` Scanner``オブジェクトのコンストラクタに渡す一連のキーワード引数を表します。コンストラクタの詳細については、:term: venusian`のドキュメント( Scanner``クラス)を参照してください。デフォルトでは、Scannerコンストラクタに渡される唯一のキーワード引数は ` {'config':self} ``です。ここで `` self``はこのコンフィギュレータオブジェクトです。これはすべての組み込みPyramidデコレータの要件を満たしますが、拡張システムには追加の引数が必要な場合があります。この議論を提供することはしばしば必要ではない。それは高度な使い方です。
バージョン 1.1 で追加: `` ** kw``の議論。
バージョン 1.3 で追加: `` ignore``引数です。
:methodcategory: ルートとビューを追加する
-
add_route
(name, pattern=None, permission=None, factory=None, for_=None, header=None, xhr=None, accept=None, path_info=None, request_method=None, request_param=None, traverse=None, custom_predicates=(), use_global_views=False, path=None, pregenerator=None, static=False, **predicates)¶ 現在の設定状態にa:term: ルート設定 'を追加するだけでなく、このルートが一致するときに呼び出される:term: view callable`を指定するために、おそらくa:term: `view configuration'を追加します。このメソッドの引数は、* predicate 、 non-predicate 、 view-related *型に分かれています。 :term: `Route predicate`引数は、ルートがリクエストと一致する状況を絞り込みます。非述語の引数は情報です。
非述語引数
名
ルートの名前、例えば「myroute」。この属性は必須です。特定のアプリケーションで定義されたすべてのルート間で一意でなければなりません。工場
このルートが一致したときに:app: Pyramid`ルートリソースオブジェクトを生成する同じオブジェクトを参照するPythonオブジェクト(関数またはクラス)、または:term:`ドット付きPython名 `。たとえば、 ` mypackage.resources.MyFactory``などです。この引数を指定しないと、デフォルトのルートファクトリが使用されます。ルートファクトリの詳細については:ref: `the_resource_tree`を参照してください。トラバース
このルートが一致したときに、:term: context`を:term:`ルート `オブジェクト以外のものにしたい場合は、トラバースパターンを traverse``引数として綴ることができます。このトラバーサルパターンは、トラバーサルパスとして使用されます。トラバーサルは、このルートが意味するルートオブジェクト(グローバルルートまたはこのルートに関連付けられた ` factory``によって返されるオブジェクト)から開始します。
`` traverse`引数の構文は `` pattern``の構文と同じです。例えば、 `` add_route``に与えられた `` pattern``が `` articles / {article} / edit``であり、 `` add_route``に与えられた `` traverse``引数が `` /リクエストのURIが `` / articles / 1 / 'である場合、 article``の値が ' 1 ' ` edit``)、トラバーサルパスは `` / 1``として生成されます。これは、ルートオブジェクトの `` __getitem__``がトラバーサルフェーズ中に `` '1'``という名前で呼び出されることを意味します。 `` '1' '`オブジェクトが存在する場合、要求の:term:` context`になります。 :ref: `traversal_chapter`は、トラバースに関するより多くの情報を持っています。
トラバーサルパスに `` pattern``引数に存在しないセグメントマーカー名が含まれていると、実行時エラーが発生します。 `` traverse``パターンは `` pattern``引数に存在しないセグメントマーカーを含んではいけません。
同様の経路とトラバーサルの組み合わせは、そのパターンに `` * traverse``残余マーカを含むルートがマッチしたときに利用できます(ref: using_traverse_in_a_route_pattern`を参照)。 add_routeへの ` traverse``引数は、 `` * traverse``剰余マーカを使わずに任意のトラバーサルパスにルートパターンを関連付けることができます。代わりに他の一致情報を使用することができます。
`` add_route``への `` traverse``引数は、そのパターンに `` traverse``残余マーカを持つルートに接続されているときは無視されることに注意してください。
事前発生者
このオプションは、:class: pyramid.interfaces.IRoutePregenerator`インターフェースを実装する呼び出し可能なオブジェクトでなければなりません。 A:term: `pregenerator`は、ルートのURLを生成するときに渡される引数を増やしたり、置き換えるために:meth: pyramid.request.Request.route_url`関数によって呼び出される呼び出し可能な呼び出しです。これは、アプリケーションによって直接使用されることは少なく、app: `Pyramid`をベースにしたフレームワークにフックされます。use_global_views
要求がこのルートに一致し、ビューの検索でルートに一致する `` route_name``述語引数を持つビューが見つからない場合は、コンテキスト、要求、およびビューの名前と一致するビューを使用してフォールバックしようとしますこれはroute_name述部と一致しません)。静的
`` static``が `` True``の場合、このルートは着信要求と決して一致しません。 URL生成にのみ役立ちます。デフォルトでは `` static``は `` False``です。参照:ref: `static_route_narr`を参照してください。
バージョン 1.1 で追加.
受け入れる
この値は、 `` Accept`` HTTPリクエストヘッダの1つまたは複数のMIMEタイプの一致クエリを表します。この値が指定されていれば、 `` text / plain``形式のmimetypeマッチトークン、 `` text / * ``形式のワイルドカードmimetypeマッチトークン、すべてのワイルドカードmimetypeは `` * / * ``形式のトークンとマッチします。いずれかのフォームがリクエストの `` Accept``ヘッダーと一致する場合、または `` Accept``ヘッダーがリクエストにまったく設定されていない場合、これは現在のルートと一致します。これが要求の `` Accept``ヘッダーと一致しない場合、ルートマッチングは継続します。述語引数
パターン
xhr
この値は `` True``または `` False``のいずれかでなければなりません。この値が指定され、 `` True``である場合、:term: request`は、このルートが一致するための HTTP_X_REQUESTED_WITH``(別名 X-Requested-With`)ヘッダを持っていなければなりません。これは、jQuery、PrototypeなどのJavascriptライブラリから発行されたAJAXリクエストを検出するのに便利です。この述語が `` False``を返した場合、ルートマッチングは継続します。request_method
`` GET``、 `` POST``、 `` HEAD``、 `` DELETE``、 `` PUT``、HTTPメソッド名を含む要素のタプルなどのHTTPメソッド名を表す文字列です。この引数が指定されていない場合、要求に* any * requestメソッドがある場合、このルートは一致します。この述語が `` False``を返した場合、ルートマッチングは継続します。
バージョン 1.2 で変更: アイテムのタプルを `` request_method``として渡すことができます。以前のバージョンでは文字列しか使用できませんでした。
path_info
この値は、 `` PATH_INFO``のWSGI環境変数に対してテストされる正規表現パターンを表します。正規表現が一致する場合、この述語は `` True``を返します。この述語が `` False``を返した場合、ルートマッチングは継続します。request_param
この値には任意の文字列を使用できます。この引数を指定したビュー宣言は、リクエストに `` request.params``辞書(HTTPの `` GET``または `` POST``変数)にキーがある場合にのみ関連するルートが一致することを保証します供給された値と一致する。引数として与えられた値に `` =という記号がある場合、 `` request_param = \ "foo = 123 \" ``のように、キー( `` foo
) request.params``ディクショナリであり、その値は現在のリクエストに "一致"するための式の右側( `` 123``)と一致しなければなりません。この述語が `` False``を返した場合、ルートマッチングは継続します。ヘッダ
この引数は、HTTPヘッダー名またはヘッダー名/値のペアを表します。引数に: ``(コロン)が含まれていると、それは名前と値のペア( `` User-Agent:Mozilla /.* ``や `` Host:localhost``など)とみなされます。値にコロンが含まれる場合、値の部分は正規表現でなければなりません。値にコロンが含まれていない場合、値全体がヘッダー名と見なされます(たとえば `` If-Modified-Since
)。値がヘッダー名のみに評価される場合は、この述部がtrueになるように、名前で指定されたヘッダーが要求内に存在していなければなりません。値がヘッダーの名前/値のペアに評価される場合、名前で指定されたヘッダーが要求に存在していなければなりません。*また、値として指定された正規表現はヘッダーの値と一致する必要があります。値がヘッダー名またはヘッダー名/値のペアを表すかどうかに関係なく、ヘッダー名の大文字小文字は重要ではありません。この述語が `` False``を返した場合、ルートマッチングは継続します。effective_principals
指定する場合、この値は:term: principal`識別子または一連のプリンシパル識別子でなければなりません。 :attr: `pyramid.request.Request.effective_principals`プロパティが、引数リストに指定されたすべてのプリンシパルが現在のリクエストに存在することを示す場合、この述語はTrueを返します。それ以外の場合はFalseを返します。たとえば、 ` effective_principals = pyramid.security.Authenticated``や `` effective_principals =( 'fred'、 'group:admins') ``などです。
バージョン 1.4a4 で追加.
custom_predicates
バージョン 1.5 で撤廃: この値は、カスタム述部呼び出し可能関数への参照のシーケンスでなければなりません。あらかじめ定義された述語のセットが必要な場合には、カスタム述部を使用します。カスタム述部は、必要に応じて事前定義された述部と組み合わせることができます。呼び出し可能な各カスタム述語は、 `` info``と `` request``という2つの引数を受け取り、情報や要求を任意に評価した後、 `` True``または `` False``を返す必要があります。すべてのカスタムおよび非カスタム述語コールバックが `` True``を返す場合、関連するルートは特定の要求に対して実行可能であると見なされます。いずれかの述語呼び出し可能関数が `` False``を返した場合、ルートマッチングは継続します。カスタム経路述語に渡される値 `` info``は、一致する情報を含む辞書であることに注意してください。 `` info``の詳細については:ref: `custom_route_predicates`を参照してください。
述語
-
add_static_view
(name, path, **kw)¶ 画像やCSSファイルなどの静的アセットをレンダリングするために使用するビューを追加します。
`` name``引数はアプリケーション相対のローカルURLプレフィックスを表す文字列です。代わりに完全なURLでもかまいません。
`` path``引数は、静的ファイルが存在するディスク上のパスです。これは、絶対パス、パッケージ相対パス、または:term: `資産指定 'です。
`` cache_max_age``キーワード引数は、提供される静的資産の `` Expires``と `` Cache-Control``ヘッダーを設定するために入力されます。この引数は、 `` name``が* url接頭辞*のときは効果がないことに注意してください。デフォルトでは、この引数は `` None``です。これは、ExpiresまたはCache-Controlヘッダーが応答に設定されていないことを意味します。
`` permission``キーワード引数は、ユーザが静的ビューを実行するために必要な:term: permission`を指定するために使用されます。デフォルトでは、次の文字列があります:data: `pyramid.security.NO_PERMISSION_REQUIRED:現在のアプリケーションにa:term:` default permission`が存在する場合でも、静的ビューは完全に匿名にレンダリングされるべきであることを示す特別な監視コードです。ユーザー。ほとんどのWebアプリケーションでは、静的資産の保護がほとんど必要ないため、このデフォルト値は許容値です。 `` permission``が指定されている場合、セキュリティチェックはデフォルトのルートファクトリACLに対して実行されます。
`` add_static_view``に送られた他のキーワード引数は、:meth: pyramid.config.Configurator.add_route`(例えば factory`、おそらくこの静的ビューのカスタムACLを持つカスタムファクトリを定義するために)に渡されます。 。
使用法
`` add_static_view``関数は、通常:meth: pyramid.request.Request.static_url`メソッドと組み合わせて使用されます。 ` add_static_view``は、あるURLが訪れたときに静的資産をレンダリングするビューを追加します。 :meth: `pyramid.request.Request.static_url`はそのアセットへのURLを生成します。
`` add_static_view``の `` name``引数は通常、単純なURL接頭辞です(例えば `` 'images'``)。この場合、:meth: pyramid.request.Request.static_url APIはPyramidビューを指し示すURLを生成し、ピラミッドビューはパッケージ自体に存在する一連のアセットを提供します。例えば:
add_static_view('images', 'mypackage:images/')
このようなビューを登録するコードは、次のようにしてビューへのURLを生成できます:meth: pyramid.request.Request.static_url:
request.static_url('mypackage:images/logo.png')
上記のように、URL接頭辞を表す `` name``引数を指定して `` add_static_view``を呼び出すと、 `` meth: pyramid.request.Request.static_url`の後に `` `` add_static_view``に渡されたpath引数は `` http://のようなURLを生成します<Pyramid app URL> / images / logo.png``を実行すると、 `` mypackage``パッケージの `` images``サブディレクトリにある `` logo.png``ファイルが提供されます。
`` add_static_view``は `` URL` *引数である `` name``引数と交互に使うことができ、外部のウェブサーバから静的資産を提供します。これは、 `` name``引数が完全修飾URL( `` http:// ``などで始まるURL)である場合に発生します。このモードでは、:meth: pyramid.request.Request.static_url`を使用してURLを生成するときに、 name``が完全なURLの接頭辞として使用されます。さらに、プロトコル相対URL( ` // example.com / images``など)が `` name``引数として使用された場合、生成されたURLは要求のプロトコル(それぞれhttpまたはhttps)を使用します。 。
たとえば、 `` add_static_view``が次のように呼び出されたとします:
add_static_view('http://example.com/images', 'mypackage:images/')
その後、静的ビューの:meth: pyramid.request.Request.static_url`によって生成されたURLには、 http:// example.com / images``( `example.comをリッスンしている外部Webサーバー``はそのような要求に適切に応答するように構成されていなければなりません)。
static_url('mypackage:images/logo.png', request)
詳細はref: `static_assets_section`を参照してください。
-
add_view
(view=None, name='', for_=None, permission=None, request_type=None, route_name=None, request_method=None, request_param=None, containment=None, attr=None, renderer=None, wrapper=None, xhr=None, accept=None, header=None, path_info=None, custom_predicates=(), context=None, decorator=None, mapper=None, http_cache=None, match_param=None, check_csrf=None, require_csrf=None, exception_only=False, **view_options)¶ a:term: view configuration`を現在の設定状態に追加します。 ` add_view``への引数は、*述語*引数と*非述語*引数に分割されています。述語引数は、要求がapp: `Pyramid`に提示されたときにビュー呼び出し可能関数が呼び出される状況を狭めます。非述語の引数は情報です。
非述語引数
見る
A:term: view callable`またはa:term:点滅したPython名 `` callable ''を参照します。 `` renderer``引数も存在しない限り、この引数は必須です。 `` renderer``引数が渡され、 `` view``引数が指定されていない場合、ビューの呼び出し可能なデフォルトは空の辞書を返す呼び出し可能です(参照:ref: views_which_use_a_renderer)。許可
A:term: permission:`を呼び出すためにユーザが持っていなければならない `permission: callable``です。ビューのセキュリティと権限の詳細については、:ref: `view_security_section`を参照してください。これはしばしば ` view``や `` edit``のような文字列です。
`` permission``が省略された場合、:class: pyramid.config.Configurator`コンストラクタの default_permission``引数、または以下の場合には、このビューの登録に* default *このビュー登録の前に `pyramid.config.Configurator.set_default_permission`が使用されました。値:data: `pyramid.security.NO_PERMISSION_REQUIRED`をパーミッション引数として渡して、デフォルトのパーミッションにかかわらず、完全に匿名のユーザがビューを常に実行可能にすることを明示します。term: authorization policy`事実上。
アトリエ
このノブは、ビュー定義がクラスである場合に最も便利です。
ビュー機構は、デフォルトで:term: view callable`(ビュー呼び出し可能関数が関数の場合は関数自体)の __call__``メソッドを使用して応答を取得します。 ` attr``値は、レスポンスを取得するために使用されるメソッド属性を変更することを可能にします。たとえば、ビューがクラスで、クラスに `` index``という名前のメソッドがあり、クラスの `` __call__``メソッドの代わりにこのメソッドを使用してレスポンスを返す場合は、ビューのビュー設定で attr = " index " `
レンダラー
これは、単一の文字列(例えば、 `` json``)やパスを意味する文字列、または:term: 資産指定`(例えば、 ` templates / views.pt``)の命名です:term: renderer`の実装。 ` renderer``の値にドット `` .``が含まれていない場合、指定された文字列はレンダラー実装をルックアップするために使用され、レンダラー実装はビュー戻り値からの応答を構築するために使用されます。 `` renderer``の値にドット( `` .``)が含まれている場合、指定された用語はパスとして扱われ、パスの最後の要素のファイル名拡張子はレンダラー実装をルックアップするために使われます。それは完全なパスを通過します。レンダラーの実装は、ビューの戻り値から:term: `response`を構築するために使用されます。
ビュー自体が:term: response`(:ref: the_response`を参照)を返した場合、指定されたレンダラー実装は決して呼び出されません。
レンダラーがパスである場合、パスは通常単純な相対パス名ですが(例えば、 `` templates / foo.pt``、"foo.pt "という名前のテンプレートは"templates "ディレクトリにあることを意味しますConfiguratorのcurrent:term: package 'のディレクトリに対して)、パスはUNIX上のスラッシュまたはWindows上のドライブ文字プレフィックスから始まる絶対パスで指定できます。パスは、 ` some.dotted.package_name:relative / path``の形式でa:term: `asset specification 'にすることもできます。これにより、別のパッケージに入っているテンプレートアセットを扱うことができます。
`` renderer``属性はオプションです。定義されていない場合、レンダリングは行われません(レンダリングは行われず、値は変更されずにアップストリーム:app: `Pyramid`機械に戻されます)。
http_cache
バージョン 1.1 で追加.
ビュー設定に `` http_cache``値を指定すると、関連するview呼び出し可能で生成されたレスポンスの `` Expires``と `` Cache-Control``ヘッダーが変更されます。 `` http_cache``の値は次のいずれかです:
- 非ゼロの整数。ゼロ以外の整数の場合、秒数として扱われます。この秒数は、このビューを呼び出すリクエストに対するレスポンスの `` Expires``ヘッダと `` Cache-Control:max-age``パラメータを計算するために使用されます。たとえば、 `` http_cache = 3600``は、リクエストしているブラウザに「この応答を1時間キャッシュしてください」と指示します。
- `` datetime.timedelta``インスタンスです。 `` datetime.timedelta``インスタンスの場合、秒数に変換され、その秒数が `` Expires``ヘッダーと `` Cache-Control:max-age ''を計算するために使われますこのビューを呼び出す要求への応答のパラメータ。例: `` http_cache = datetime.timedelta(days = 1) ``は、リクエストしているブラウザに「この応答を1日キャッシュしてください」と指示します。
- 0( `` 0``)。値がゼロの場合、このビューからのすべての応答に存在する `` Cache-Control``と `` Expires``ヘッダーは、クライアントブラウザのキャッシュ(および任意の中間キャッシュ)にレスポンスをキャッシュしないように構成されます。
- 2タプル。それが2つのタプル(例えば `` http_cache =(1、{'public':True)) ``)の場合、タプルの最初の値は非ゼロの整数か `` datetime.timedelta``インスタンスです。どちらの場合も、この値はレスポンスをキャッシュする秒数として使用されます。タプルの2番目の値は辞書でなければなりません。辞書にある値は `` Cache-Control``レスポンスヘッダへの入力として使われます。例えば、 `` http_cache =(3600、{'public':True})は ``キャッシュを1時間意味し、 `` public``をレスポンスのCache-Controlヘッダに追加します。 `` webob.cachecontrol.CacheControl``インターフェースでサポートされているすべてのキーと値を辞書に追加することができます。 `` {'public':True} ``を提供することは、 `` response.cache_control.public = True``を呼び出すことと等価です。
`` http_cache``として非タプルの値を与えることは、あなたのビューのボディ内で `` response.cache_expires(value) ``を呼び出すことと同じです。
`` http_cache``として2タプルの値を与えることは、あなたのビューのボディ内で `` response.cache_expires(value [0]、** value [1]) ``を呼び出すのと同じです。
`` Expires``ヘッダーに影響を与えず、 `` Cache-Control``ヘッダにのみ影響を与えたい場合は、 `` None``の最初の要素を持つ `` http_cache``としてタプルを渡し、例: ``(None、{'public':True}) ``。
設定で `` http_cache``を使用するビューがこのマシンによってキャッシュレスポンスヘッダが変更されないようにするには、ビューからレスポンスを返す前に `` response.cache_control.prevent_auto = True``を設定してください。これは、その応答に対して `` http_cache``によって行われるHTTPキャッシングを事実上無効にします。
require_csrf
バージョン 1.7 で追加.
booleanオプションか `` None``です。デフォルト: `` None``。
このオプションが `` True``に設定されている場合、CSRFチェックはこのビューに対する要求に対して有効になります。必要なトークンまたはヘッダのデフォルトは、それぞれ `` csrf_token``と `` X-CSRF-Token``です。
CSRFチェックは、RFC2616で定義されているように、"安全ではない"というメソッドにのみ影響します。デフォルトでは、これらのメソッドは `` GET``、 `` HEAD``、 `` OPTIONS``、および `` TRACE``以外のものです。
ここでのデフォルトは:meth: `pyramid.config.Configurator.set_default_csrf_options`によって上書きされるかもしれません。
この機能には、設定済み:term: `セッションファクトリ`が必要です。
このオプションが `` False``に設定されている場合、 `` set_default_csrf_options``に渡されるデフォルトの `` require_csrf``設定にかかわらず、CSRFチェックは無効になります。
詳細は:ref: `auto_csrf_checking`を参照してください。
ラッパー
このビューの応答本体をそれ自身の:request.wrapped_body`属性として受け取る:term: request`と: term: `response`は、このビューによって自身の要求の request.wrapped_response``属性として返されます。ラッパーを使用すると、ビューをまとめて"チェーン"して複合レスポンスを形成することができます。最も外側のラッパー・ビューの応答がユーザーに戻されます。ラッパービューはすべてのビューが見つかると見つかります:see:ref: `view_lookup。ルックアップの順序に基づいて"ベスト"ラッパービューが見つけられます:"under the hood "このラッパービューは `` pyramid.view.render_view_to_response(context、request、 'wrapper_viewname') ``で検索されます。ラッパー・ビューのコンテキストおよび要求は、同じコンテキストおよび内部ビューの要求です。この属性が指定されていない場合、ビューの折り返しは行われません。デコレータ
A:term:登録された:term: view callable`をデコレートするために使用される `dotted Python name`(または関数自体、または前述のiterable)。デコレータ関数は呼び出し可能なビューを単一の引数として呼び出されます。呼び出し可能なビューは ``(context、request) `'を受け入れます。デコレータは、 ``(context、request) `'を受け付ける代わりのview callableを返さなければなりません。
デコレータが反復可能である場合、コール可能オブジェクトは結合され、デコレータとして提供される順序で使用されます。例えば::
@view_config(..., decorator=(decorator2, decorator1)) def myview(request): ....
やっていることに似ています:
@view_config(...) @decorator2 @decorator1 def myview(request): ...
`` decorator = ``(すべてのビュー呼び出し規約に共通のデコレータ構文を持ち、デコレータロジック内で `` __name__``や `` __module__``などの関数属性を保存することについて考える必要はありません)の既存の利点を除いて。
重要な違いは、各デコレータはビュー呼び出し可能から返された生の値の代わりに:class: `pyramid.interfaces.IResponse`を実装する応答オブジェクトを受け取ることです。チェーン内のすべてのデコレータは、レスポンスオブジェクトを返すか、例外を送出する必要があります。
def log_timer(wrapped): def wrapper(context, request): start = time.time() response = wrapped(context, request) duration = time.time() - start response.headers['X-View-Time'] = '%.3f' % (duration,) log.info('view took %.3f seconds', duration) return response return wrapper
バージョン 1.4a4 で変更: iterableを渡します。
マッパ
Pythonオブジェクトまたは:term: dotted Python name::term:` view mapper`または `` None``を参照してください。デフォルトでは `` None``です。これは、ビューがデフォルトビューマッパーを使用する必要があることを示します。このプラグインはPyramid拡張開発者には便利ですが、株式ピラミッドアプリケーションを開発している「一般市民」にとってあまり役に立ちません。カーテンの後ろの男には注意を払わないでください。受け入れる
この値は、 `` Accept`` HTTPリクエストヘッダの1つまたは複数のMIMEタイプの一致クエリを表します。この値が指定されていれば、 `` text / plain``形式のmimetypeマッチトークン、 `` text / * ``形式のワイルドカードmimetypeマッチトークン、すべてのワイルドカードmimetypeは `` * / * ``形式のトークンとマッチします。いずれかのフォームがリクエストの `` Accept``ヘッダーと一致する場合、または `` Accept``ヘッダーがリクエストにまったく設定されていない場合、これは現在のビューと一致します。これが要求の `` Accept``ヘッダーと一致しない場合、ビューの一致が続きます。述語引数
名
:term: ビュー名。ビュー名の概念を理解するために:ref: `traversal_chapter`を読んでください。コンテキスト
オブジェクトまたは:term: dotted Python name`は、インタフェースまたはクラスオブジェクトを参照しています。:term: context`は、:term: context`のインスタンスでなければなりません`このビューを見つけて呼び出すために提供する必要があります。この述語は:term: `context`が表現されたクラスのインスタンスである場合、または:term: context`が表現されたインタフェースを提供する場合に真です。それ以外の場合はfalseです。この引数は、 `` for_``(古い、依然としてサポートされているスペル)として `` add_view``に提供することもできます。例外を処理するときにビューが* only *一致する必要がある場合は、 `` exception_only``を `` True``に設定してください。例外のみ
バージョン 1.8 で追加.
この値が `` True``の場合、 `` context``引数は `` Exception``のサブクラスでなければなりません。このフラグは、:term: 例外ビュー 'のみを作成し、traversal:term: context`が `` context``引数と一致する場合、このビューは一致してはならないことを示します。 `` context``が `` Exception``のサブクラスで、この値が `` False``(デフォルト)の場合、トラバーサル:term: `context`にもマッチするビューが登録されます。
ルート名
この値は、このビューが呼び出される前に一致しなければならない:term: ルート設定`宣言(:ref: `urldispatch_chapter`参照)の `name``と一致しなければなりません。リクエストの種類
この値は、:term: request`がこのビューを見つけて呼び出すために提供しなければならない:term: interface`でなければなりません。この値は下位互換性の目的でのみ存在します。request_method
この値は、文字列( `` "GET "
、 `` POST ""、 `` \ "PUT \" ``、 `` \ "DELETE \" ``、 `` \ "HEAD \" ``または `` \ "OPTIONS \" ``)、またはこれらの文字列の1つ以上を含むタプルを返します。この引数を指定したビュー宣言は、リクエストの `` method``属性(WSGI環境の `` REQUEST_METHOD
)が指定された値と一致する場合にのみビューが呼び出されることを保証します。 `` GET``を使うと、ビューがPyramid 1.4の `` HEAD``に応答することにも注意してください。バージョン 1.2 で変更: アイテムのタプルを `` request_method``として渡すことができます。以前のバージョンでは文字列しか使用できませんでした。
request_param
この値は、任意の文字列または文字列の任意のシーケンスです。この引数を指定したビュー宣言は、:term: request`が request.params``ディクショナリ(HTTPの GET``または POST``変数)は、指定された値(文字列の場合)または値(タプルの場合)と一致する名前を持ちます。 ` request_param = "foo = 123 "のように `` = ``記号が与えられている場合、キー( `` foo
)は `` request.params ``ディクショナリ、*、*の値は、現在の要求に "一致"するための式の右側( "123")と一致しなければなりません。match_param
バージョン 1.2 で追加.
この値は、"key = value "という形式の文字列、またはこれらの文字列の1つ以上を含むタプルです。
この引数を指定したビュー宣言は、:term: request`が:term: matchdict`にキーと値のペアを持ち、述語で与えられたものと等しい場合にのみビューが呼び出されることを保証します。例えば、 `` match_param = "action = edit "
は、 `` action``パラメータを必要とします:term: `matchdict`は、ビューの式の右側(` `edit
)にマッチします。現在の要求に "一致"します。`` match_param``がタプルの場合、すべてのキーと値のペアは述語が渡すために一致しなければなりません。
封じ込め
この値は、コンテキストの:term: lineage`のオブジェクトがこのビューを見つけるために提供しなければならないPythonクラスまたは:term: interface`(またはa:term: dotted Python name)でなければなりませんと呼ばれる。この機能を使用するには、オブジェクトグラフのノードが"位置認識"でなければなりません。位置認識の詳細については:ref: `location_aware`を参照してください。xhr
この値は `` True``または `` False``のいずれかでなければなりません。この値が指定され、 `` True``である場合、:term: request`は XMLHttpRequest``という値を持つ HTTP-X_REQUESTED_WITH``(別名 X-Requested-With`)このビューを見つけて呼び出します。これは、jQuery、PrototypeなどのJavascriptライブラリから発行されたAJAXリクエストを検出するのに便利です。ヘッダ
この値は、HTTPヘッダー名またはヘッダー名/値のペアを表します。値に: ``(コロン)が含まれていると、名前と値のペアとみなされます(例えば、 `` User-Agent:Mozilla /.* ``や `` Host:localhost
)。値の部分は正規表現でなければなりません。値にコロンが含まれていない場合、値全体がヘッダー名と見なされます(たとえば `` If-Modified-Since``)。値がヘッダー名のみに評価される場合は、この述部がtrueになるように、名前で指定されたヘッダーが要求内に存在していなければなりません。値がヘッダーの名前/値のペアに評価される場合、名前で指定されたヘッダーが要求に存在していなければなりません。*また、値として指定された正規表現はヘッダーの値と一致する必要があります。値がヘッダー名またはヘッダー名/値のペアを表すかどうかに関係なく、ヘッダー名の大文字小文字は重要ではありません。path_info
この値は、 `` PATH_INFO``のWSGI環境変数に対してテストされる正規表現パターンを表します。正規表現が一致する場合、この述語は `` True``になります。check_csrf
バージョン 1.7 で撤廃: 代わりに:class: pyramid.exceptions.BadCSRFToken`例外を発生させるには、 require_csrf``オプションを使うか、:ref: auto_csrf_checking`を参照してください。
指定する場合、この値は `` None``、 `` True``、 `` False``、または check name 'を表す文字列のいずれかでなければなりません。値が ` True``または文字列の場合、CSRFチェックが実行されます。値が `` False``または `` None``の場合、CSRFチェックは実行されません。
指定された値が文字列の場合、その文字列は「チェック名」として使用されます。指定された値が `` True``の場合、 `` csrf_token``がチェック名として使用されます。
CSRFチェックが実行されると、チェックされた値は `` request.params [check_name] ``の値になります。この値は `` policy.get_csrf_token() ``の値と比較されます( `` policy``は:meth: `pyramid.interfaces.ICSRFStoragePolicy`の実装です)、これらの2つの値同じだ。チェックが合格すると、関連するビューの実行が許可されます。検査が失敗した場合、関連するビューは実行できません。
バージョン 1.4a2 で追加.
physical_path
指定された場合、この値は、この述語が真と一致するために、トラバーサルによって見つかったコンテキストの:term: 物理パス 'を表す文字列またはタプルでなければなりません。例: ` physical_path = '/' ``または `` physical_path = '/ a / b / c``または `` physical_path =(' '、' a '、' b '、' c ') `` 。これはパス接頭辞の一致または正規表現ではなく、パス全体の一致です。これは、あるオブジェクトがトラバースされているときに常にビューを表示したいときに便利ですが、どのようなオブジェクトであるかを確かめることができないので、 `` context``述語を使うことはできません。スラッシュ文字またはタプル要素の間の個々のパス要素は、リソース名のUnicode表現である必要があります。
バージョン 1.4a3 で追加.
effective_principals
指定する場合、この値は:term: principal`識別子または一連のプリンシパル識別子でなければなりません。 :attr: `pyramid.request.Request.effective_principals`プロパティが、引数リストに指定されたすべてのプリンシパルが現在のリクエストに存在することを示す場合、この述語はTrueを返します。それ以外の場合はFalseを返します。たとえば、 ` effective_principals = pyramid.security.Authenticated``や `` effective_principals =( 'fred'、 'group:admins') ``などです。
バージョン 1.4a4 で追加.
custom_predicates
バージョン 1.5 で撤廃: この値は、カスタム述部呼び出し可能関数への参照のシーケンスでなければなりません。事前定義された述部のセットが必要な場合には、カスタム述部を使用します。カスタム述部は、必要に応じて事前定義された述部と組み合わせることができます。呼び出し可能な各カスタム述語は、 `` context``と `` request``の2つの引数を受け取り、コンテキストや要求の任意の評価を行った後、 `` True``または `` False``を返す必要があります。このメソッドの `` predicates``引数と:meth: `pyramid.config.Configurator.add_view_predicate`を介してサードパーティのビュー述語を登録する機能は、この引数を廃止しますが、下位互換性のために保持されます。
view_options
キー/値のペアをここに渡して、サードパーティーの述語を使用するか、ビュー・デリバーの値を設定します。参照:meth: pyramid.config.Configurator.add_view_predicate`と:meth: pyramid.config.Configurator.add_view_deriver`。サードパーティの述語についての詳細は:ref: view_and_route_predicates、ビューデリバーについては:ref:` view_derivers`を参照してください。
-
add_notfound_view
(view=None, attr=None, renderer=None, wrapper=None, route_name=None, request_type=None, request_method=None, request_param=None, containment=None, xhr=None, accept=None, header=None, path_info=None, custom_predicates=(), decorator=None, mapper=None, match_param=None, append_slash=False, **view_options)¶ デフォルト:term: `Not Found View`を現在の設定状態に追加します。ピラミッドまたはアプリケーションコードが:exc: `pyramid.httpexceptions.HTTPNotFound`例外を発生させると、ビューが呼び出されます(例えば、要求がビューを見つけることができない場合)。最も単純な例は次のとおりです。
def notfound(request): return Response('Not Found', status='404 Not Found') config.add_notfound_view(notfound)
`` view``引数が与えられていない場合、ビューの呼び出し可能なデフォルトは:func: `〜pyramid.httpexceptions.default_exceptionresponse_view`です。
`` append_slash``を除くすべての引数は:meth: pyramid.config.Configurator.add_view`と同じ意味を持ち、各述語引数はこの未知のビューが呼び出される環境の集合を制限します。 :meth: `pyramid.config.Configurator.add_view`とは異なり、このメソッドは name`、` permission`、` require_csrf`、` context`、` for_`を渡すと例外を送出します。 `、 `exception_only``のキーワード引数を指定します。これらの引数の値は、見つからないビューのコンテキストでは意味を持ちません。
`` append_slash``が `` True``の場合、このNot Found Viewが呼び出され、現在のパス情報がスラッシュで終わらない場合、notfoundロジックは:term: route`を見つけようとします。リクエストのパス情報の末尾にスラッシュが付きます。このようなルートが存在する場合、Pyramidはそのルートが意味するURLにリダイレクトを発行します。もしそうでなければ、Pyramidは通常通り ` view``として提供された呼び出し可能なビューの結果を返します。
`` append_slash``として提供された引数がブール値ではなく、代わりに:class: 〜pyramid.interfaces.IResponse`を実装する場合、append_slashロジックは `append_slash = True``が渡されたかのように動作しますが、リダイレクトが実行されたときのデフォルト:class: `〜pyramid.httpexceptions.HTTPFound`レスポンスクラスの代わりにレスポンスクラスとして使用されます。例えば:
from pyramid.httpexceptions import HTTPMovedPermanently config.add_notfound_view(append_slash=HTTPMovedPermanently)
上記のことは、スラッシュが追加されたルートへのリダイレクトが試みられるが、class: 〜pyramid.httpexceptions.HTTPFound`の代わりに:class:〜pyramid.httpexceptions.HTTPMovedPermanently`がリダイレクトに使用されることを意味するスラッシュが追加されたルートが見つかった場合の応答。
バージョン 1.3 で追加.
バージョン 1.6 で変更: `` append_slash``引数は、 `` IResponse``インターフェースを実装しているオブジェクトが、リダイレクトが実行されたときに使われるレスポンスクラスを指定できるように変更されました。
バージョン 1.8 で変更: ビューは `` exception_only = True``を使って作成されます。
-
add_forbidden_view
(view=None, attr=None, renderer=None, wrapper=None, route_name=None, request_type=None, request_method=None, request_param=None, containment=None, xhr=None, accept=None, header=None, path_info=None, custom_predicates=(), decorator=None, mapper=None, match_param=None, **view_options)¶ 禁止されたビューを現在の設定状態に追加します。ピラミッドまたはアプリケーションコードがa:exc: `pyramid.httpexceptions.HTTPForbidden`例外を発生し、提供された述語が暗示する状況のセットが一致したときにビューが呼び出されます。最も単純な例は次のとおりです。
def forbidden(request): return Response('Forbidden', status='403 Forbidden') config.add_forbidden_view(forbidden)
`` view``引数が与えられていない場合、ビューの呼び出し可能なデフォルトは:func: `〜pyramid.httpexceptions.default_exceptionresponse_view`です。
すべての引数は:meth: pyramid.config.Configurator.add_view`と同じ意味を持ち、各述語引数は、この禁止されたビューが呼び出される環境のセットを制限します。 :meth: `pyramid.config.Configurator.add_view`とは異なり、このメソッドは name`、` permission`、` require_csrf`、` context`、` for_`を渡すと例外を送出します。 `、 `exception_only``のキーワード引数を指定します。これらの引数の値は、禁止:用語:例外ビューのコンテキストで意味をなさない。
バージョン 1.3 で追加.
バージョン 1.8 で変更: ビューは `` exception_only = True``を使って作成されます。
-
add_exception_view
(view=None, context=None, **view_options)¶ 指定した `` exception``の:term: `exception view`を現在の設定状態に追加します。ピラミッドまたはアプリケーションコードが指定された例外を呼び出すと、ビューが呼び出されます。
このメソッドは、 `` name``、 `` permission``、 `` for_``、 `` require_csrf``、および `` require_csrf``を除いて、meth: `pyramid.config.Configurator.add_view`とほぼ同じ引数を受け取ります。 `exception_only``です。
デフォルトでは、このメソッドは `` context = Exception``を設定し、ほとんどのデフォルトのPython例外を登録します。 `` Exception``のサブクラスを指定することができます。
バージョン 1.8 で追加.
:methodcategory: イベント加入者を追加する
-
add_subscriber
(subscriber, iface=None, **predicates)¶ 指定された `` iface``インタフェースが暗示しているイベントストリームのためのterm: `subscriber`イベントを追加します。
`` subscriber``引数は、呼び出し可能なオブジェクト(または、a:term:呼び出し可能なものを識別する ドット付きPython名)を表します。 app: Pyramid`は iface``に関連付けられた:term: event`を出力します:term: `interface`またはクラスであるかもしれません。または:a:term: `dotted Python name`をインタフェースまたはクラスを表すグローバルオブジェクトに追加します。
デフォルトの `` iface``値を使うと、 `` None``はすべてのイベントタイプに対してサブスクライバを登録します。イベントとサブスクライバの詳細は、:ref: `events_chapter`を参照してください。
任意の数の述語キーワード引数を `` **述語 ''に渡すことができます。指定された各述部は、サブスクライバーが呼び出される一連の状況を絞り込みます。それぞれの名前付き述語は、それが使用される前に:meth: `pyramid.config.Configurator.add_subscriber_predicate`を介して登録されていなければなりません。詳細は、:ref: `subscriber_predicates`を参照してください。
バージョン 1.4 で追加: `` ** predicates``引数です。
:methodcategory: セキュリティを使う
-
set_authentication_policy
(policy)¶ 現在の設定で:app: Pyramid:term:認証ポリシー `をオーバーライドします。 ` policy``引数は、認証ポリシーのインスタンスでなければなりません。認証ポリシーのインスタンスを指すa:term: `dotted Python name`です。
注釈
:class: pyramid.config.Configurator`コンストラクタに対する `authentication_policy``引数を使用すると、同じ目的を達成できます。
現在の設定で:app: Pyramid:term:認証ポリシー `をオーバーライドします。 ` policy``引数は、認可ポリシーのインスタンスでなければならず、認可ポリシーのインスタンスを指すa:term: `dotted Python name`でなければなりません。
注釈
:class: pyramid.config.Configurator`コンストラクタへの `authorization_policy``引数を使用すると、同じ目的を達成できます。
-
set_default_csrf_options
(require_csrf=True, token='csrf_token', header='X-CSRF-Token', safe_methods=('GET', 'HEAD', 'OPTIONS', 'TRACE'), callback=None)¶ 後続のビュー登録で使用されるデフォルトのCSRFオプションを設定します。
`` require_csrf``は、アプリケーションの各ビューでCSRFチェックが自動的に有効になるかどうかを制御します。この値は、 `` require_csrf``がデフォルトで `` None``のままで、meth: `pyramid.config.Configurator.add_view`に置き換えられたときのフォールバックとして使用されます。
`` token``は、 `` request.POST [token]
によってアクセスされる、要求の本体で使用されるCSRFトークンの名前です。デフォルト: `` csrf_token
。`` header``は、 `` request.headers [header]
でアクセスされるCSRFトークンを含むヘッダの名前です。デフォルト: `` X-CSRF-Token
。`` token``や `` header``が `` None``に設定されている場合、CSRFトークンのチェックには使われません。
`` safe_methods``は、RFC2616で定義されているような副作用を含んでいないと予想されるHTTPメソッドの反復可能なものです。 CSRFトークンについて安全なメソッドが自動的にチェックされることはありません。デフォルト: ``( 'GET'、 'HEAD'、 'OPTIONS'、TRACE ') ``
`` callback``が設定されている場合、有効なCSRFトークンが要求されているかどうかをチェックする必要がある場合は、 ``(request) ``を受け取り、 `` True``を返す呼び出し可能でなければなりません。このコールバックにより、アプリケーションは、CSRF攻撃を受けないクッキーに依存しない代替認証方法をサポートできます。例えば、リクエストがクッキーの代わりに `` Authorization``ヘッダを使って認証された場合、クライアントは `` X-CSRF-Token``を送信する必要がないように、リクエストに `` False``を返します。ヘッダ。コールバックは、 `` safe_methods``で定義されている安全でないメソッドに対してのみテストされます。
バージョン 1.7 で追加.
バージョン 1.8 で変更: `` callback``オプションを追加しました。
-
set_csrf_storage_policy
(policy)¶ 次のビュー登録で使用される:term: `CSRF storage policy`を設定します。
`` policy``は、:meth: `pyramid.interfaces.ICSRFStoragePolicy`インターフェースを実装し、CSRFトークンを生成して持続させる方法を定義するクラスです。
-
set_default_permission
(permission)¶ すべての後続の:term: view configuration`の登録で使用されるデフォルトのアクセス権を設定します。 ` permission``は:term: permission`文字列でなければなりません。パーミッション文字列の例: ` 'view' ``。既定のアクセス許可を追加すると、アプリケーションポリシーが特定のビューに対して何らかの例外を必要としない限り、明示的なアクセス許可で各ビュー構成を保護する必要はありません。
デフォルトの権限が* not *に設定されている場合、明示的に権限を宣言していないビュー構成登録によって表されるビューは、完全に匿名のユーザーによって実行可能になります(権限ポリシーは無視されます)。
後でこのメソッドをオーバーライドすると、以前の呼び出しと競合します。アプリケーション内で一度にアクティブにできるデフォルトのアクセス権は1つだけです。
警告
デフォルトの権限が有効な場合、真に匿名でアクセス可能なビュー(term: exception view`ビュー)を作成するための設定を表示するには、以下のようにインポート可能な権限の値を使用しなければなりません:data: pyramid.security.NO_PERMISSION_REQUIRED` 。この文字列がビュー設定の `` permission``として使用されると、デフォルトのアクセス権は無視され、ビューは登録され、証明書に関係なくすべての呼び出し元が利用できるようになります。
参考
参照:ref: `setting_a_default_permission`を参照してください。
注釈
:class: pyramid.config.Configurator`コンストラクタへの `default_permission``引数を使用すると、同じ目的を達成することができます。
-
add_permission
(permission_name)¶ 自立したパーミッションをビュー呼び出し可能に関連付けることなく登録するコンフィギュレータ・ディレクティブ。これは、 `` permissions``カテゴリ( `` add_view`を介してすでに述べられている権限がすでにそこにある)の下でイントロスペクターブルなデータにパーミッションが現れるように使用できます。例えば::
config = Configurator() config.add_permission('view')
:methodcategory: 要求オブジェクトを拡張する
-
add_request_method
(callable=None, name=None, property=False, reify=False)¶ リクエストオブジェクトにプロパティまたはメソッドを追加します。
リクエストにメソッドを追加する場合、 `` callable``は、リクエストオブジェクトを最初のパラメータとして受け取る関数です。 `` name``が `` None``なら `` callable``の名前から計算されます。
リクエストにプロパティを追加する場合、 `` callable``はリクエストをその単一の位置パラメータとして受け入れる呼び出し可能なものか、またはプロパティ記述子である可能性があります。 `` name``が `` None``の場合、プロパティの名前は `` callable``の名前から計算されます。
`` callable``がプロパティ記述子の場合、 `` name``が `` None``または `` reify``が `` True``の場合、 `` ValueError``が発生します。
`` property``と `` reify``の詳細については、meth: pyramid.request.Request.set_property`を参照してください。 ` reify``が `` True``のとき、 `` property``の値も `` True``とみなされます。
すべての場合において、 `` callable``は:term: ``点在したPython名 ``であって、呼び出し可能なものか、またはプロパティ記述子のどちらかを指します。
`` callable``が `` None``の場合、メソッドは要求オブジェクト上の同じ属性を要求する異なるアドオン間の競合検出を支援するためだけに使用されます。
これはリクエストオブジェクトを拡張するために推奨されるメソッドであり、:meth: `pyramid.config.Configurator.set_request_factory`を介してカスタムリクエストファクトリを提供するために使用する必要があります。
バージョン 1.4 で追加.
:methodcategory: I18Nを使う
-
add_translation_dirs
(*specs, **kw)¶ 1つまたは複数の:term: translation directory`パスを現在の設定状態に追加します。 ` specs``引数は、絶対ディレクトリパス( `` / usr / share / locale``など)や:term: 資産指定`の名前にディレクトリパスを指定するシーケンスです(例えば ` some.package:ロケール ")またはその2つの組み合わせ。
例:
config.add_translation_dirs('/usr/share/locale', 'some.package:locale')
翻訳ディレクトリは、後に定義された翻訳が先に定義された翻訳よりも優先されるリストとして定義されます。
デフォルトでは、 `` add_translation_dirs``を連続して呼び出して、ディレクトリをリストの先頭に追加します。これは、後で `` add_translation_dirs``への呼び出しが、以前の呼び出しによって翻訳されたものになることを意味します。以前の呼び出しよりもこの呼び出しを明示的に必要とする場合は、 `` override``を `` True``に設定することができます。
複数の仕様が `` add_translation_dirs``の1回の呼び出しで提供された場合、ディレクトリはそれらが提供された順序で挿入されます(それより前の項目は後の項目で切り捨てられます)。
バージョン 1.8 で変更: `` override``パラメータは、後で `` add_translation_dirs``を呼び出して、変換ディレクトリリストの先頭にフォルダを挿入して前の呼び出しを上書きできるようにするために追加されました。
-
set_locale_negotiator
(negotiator)¶ このアプリケーション用に:term: locale negotiator 'を設定します。 :term: `locale negotiator`は:term: request`オブジェクトを受け入れ、:term: locale name`を返す呼び出し可能オブジェクトです。 ` negotiator``引数は、ロケールネゴシエーターの実装か、そのような実装を指す ``点在するPython名 ``でなければなりません。
後でこのメソッドを呼び出すと、以前の呼び出しが上書きされます。アプリケーション内で一度にアクティブなロケールネゴシエーターは1つだけです。詳細は、:ref: `activating_translation`を参照してください。
注釈
:class: pyramid.config.Configurator`コンストラクタへの `locale_negotiator``引数を使用すると、同じ目的を達成できます。
:methodcategory: Assetsをオーバーライドする
-
override_asset
(to_override, override_with, _override=None)¶ a:app: `Pyramid`アセットを現在の設定状態に上書きします。
`` to_override``は、オーバーライドされる資産に対する:term: `asset specification 'です。
`` override_with``は、オーバーライドを実行している資産に対する:term: `asset specification 'です。これは絶対パスでもよい。
アセットのオーバーライドの詳細については、ref: `assets_chapter`を参照してください。
:methodcategory: 設定の取得と追加
-
add_settings
(settings=None, **kw)¶ 1つ以上のキーと値のペアを使用して:term: `deployment settings`を拡張します。
あなたは辞書を渡すことができます:
config.add_settings({'external_uri':'http://example.com'})
またはキーと値のペアのセット:
config.add_settings(external_uri='http://example.com')
この関数は、:attr: pyramid.registry.Registry.settings API(または:meth:` pyramid.config.Configurator.get_settings` API)にアクセスするコードをテストし、そのAPIの値を使用するコードをテストする必要がある場合に便利です。
:methodcategory: フックピラミッドの振る舞い
-
add_renderer
(name, factory)¶ a:app: Pyramid:term:` renderer`ファクトリを現在の設定状態に追加します。
`` name``引数はレンダラー名です。既定のレンダラー(他のレンダラーの名前を特に指定しない限り、すべてのビューに使用されるレンダラー)を表すには `` None``を使用します。
`` factory``引数は、:term: renderer`ファクトリ、または:term: dotted Python name`を同じものに実装するPythonのリファレンスです。
-
add_resource_url_adapter
(adapter, resource_iface=None)¶ バージョン 1.3 で追加.
:ref: changing_the_traverser`で説明されているようにトラバーサを追加すると、:meth: pyramid.request.Request.resource_url` APIを使い続けると便利です。しかし、トラバーサルが行われる方法が変更されている可能性があるため、カスタムトラバーサルによってリソースが返されたときに、デフォルトで `` resource_url``が生成するURLが正しくない可能性があります。
トラバーサを追加した場合、メソッドを変更することができます:meth: `〜pyramid.request.Request.resource_url`は、このメソッドを呼び出すことによって、特定のタイプのリソースのURLを生成します。
`` adapter``引数は:class: 〜pyramid.interfaces.IResourceURL`インタフェースを実装するクラスを表します。クラスコンストラクターは、コンストラクター(リソースと要求)で2つの引数を受け取り、その結果得られるインスタンスは、そのインタフェースで詳細な属性(特に、 ` virtual_path``と `` physical_path``)を提供する必要があります。
`` resource_iface``引数は:meth: pyramid.request.Request.resource_url`がリソースurlアダプタを参照するときにこのURLアダプタが使用するリソースが持つべきクラスまたはインタフェースを表します。 ` resource_iface``が渡されなかったり、 `` None``として渡された場合、URLアダプタはあらゆるタイプのリソースに使われます。
詳細はref: `changing_resource_url`を参照してください。
-
add_response_adapter
(adapter, type_or_iface)¶ タイプ(またはインタフェース) `` type_or_iface``のオブジェクトがビュー呼び出し可能から返されると、Pyramidはアダプタ `` adapter``を使用して:class: pyramid.interfaces.IResponse`を実装するオブジェクトに変換しますインタフェース。 ` adapter``がNoneの場合、型(またはインタフェース) `` type_or_iface``が返されたオブジェクト自体が応答オブジェクトとして使用されます。
`` adapter``と `` type_or_interface``は、Pythonオブジェクト、またはインポート可能なPythonグローバルオブジェクトへのドット付きの名前を表す文字列です。
詳細は、:ref: `using_iresponse`を参照してください。
-
add_traverser
(adapter, iface=None)¶ app: Pyramid`が使用するsuperdefault:term: traversal`アルゴリズムは、ref: `traversal_algorithm`で説明されています。ほとんどの場合は必要ではありませんが、このデフォルトアルゴリズムは、コンフィギュレーションを介して異なるトラバーサルパターンに対して選択的にスワップアウトできます。 :ref: `changing_the_traverser`セクションでは、トラバーサクラスの作成方法について詳しく説明しています。
たとえば、Pyramidで使用されているスーパーデフォルトトラバーサをオーバーライドするには、次のようにします。
from myapp.traversal import MyCustomTraverser config.add_traverser(MyCustomTraverser)
これは、ピラミッドのスーパーディフェクトトラバーサを決して使用しないようにします。代わりに、このアプリケーションの:term: ルートファクトリ 'によってどのオブジェクトが返されても、あなたの MyCustomTraverser``クラスを使ってすべてのトラバーサルが行われます。 ` iface``キーワードパラメータに引数を渡していないことに注意してください。 `` iface``、 `` None``のデフォルト値は、ルートファクトリから返されたオブジェクトに対して他の特別なトラバーサが利用できないときに、登録されたトラバーサを使うべきであることを表します。
ただし、複数のトラバーサルアルゴリズムを同時にアクティブにすることはできます。使用されるトラバーサは:term: ルートファクトリ 'の結果に依存する可能性があります。たとえば、ルート・ファクトリが複数のタイプのオブジェクトを条件付きで戻す場合は、そのルート・ファクトリから戻された特定のクラスまたはインタフェースに対して代替のトラバーサ・アダプタを使用する必要があります。ルートファクトリがそのクラスまたはインターフェイスを実装したオブジェクトを返すと、カスタムトラバーサが使用されます。それ以外の場合は、デフォルトのトラバーサが使用されます。 ` iface``引数は、ルートファクトリが返すオブジェクトのクラス、またはオブジェクトが実装するかもしれない:term: `interface`を表します。
ルートファクトリが特定のクラスを返すときにのみ特定のトラバーサを使用するには:
config.add_traverser(MyCustomTraverser, MyRootClass)
複数のトラバーサがアクティブになっている場合、ルートファクトリから返された値のクラスまたはインタフェースに最も近いものとして、最も特定されたトラバーサが使用されます。
`` adapter``や `` iface``は:term: `dotted Python name`やPythonオブジェクトであることに注意してください。
詳細はref: `changing_the_traverser`を参照してください。
-
add_tween
(tween_factory, under=None, over=None)¶ バージョン 1.2 で追加.
'トゥイーン工場'を追加します。 A:term: `tween`( 'between'の短縮形)は、ピラミッドルータのメインリクエスト処理関数と、app:Pyramidを使用するアップストリームWSGIコンポーネントの間にあるコードです。 Tweensは、Pyramidフレームワークの拡張機能で使用される機能で、Pyramid固有のビュータイミングのサポート、上流WSGIアプリケーションに返される前に例外を調べる簿記コード、その他さまざまな機能を提供します。 Tweensは、用語:WSGIミドルウェアのように動作しますが、ピラミッド用語:アプリケーションレジストリとピラミッドレンダリング機構にアクセスできるコンテキストで動作する利点があります。
注釈
`` ptweens``コマンドを使って、与えられたPyramidアプリケーションに設定されているトゥイーンの順序を見ることができます。参照:ref: `displaying_tweens`を参照してください。
`` tween_factory``引数は:term: `dotted Python name`で、トゥイーンファクトリを表すグローバルオブジェクトにする必要があります。
`` under``と `` over``引数は、 `` add_tween``の呼び出し側が、暗黙的なトゥイーンチェーンが使用されているときに、このトゥイーンファクトリがどこに置かれるべきかについてヒントを提供することを可能にします。これらのヒントは、明示的なトゥイーンチェーンが使用されていない場合( `` pyramid.tweens``設定値が設定されていない場合)にのみ使用されます。 `` under``または `` over``(または両方)の許容値は以下のとおりです:
- `` None``(デフォルト)。
- A:term: dotted Python name`をトゥイーンファクトリに:同じコンフィグレーションセッションで `add_tween``の呼び出しで追加されたトゥイーンファクトリの点線の名前を表す文字列。
- 定数の1つ:attr: pyramid.tweens.MAIN、:attr:` pyramid.tweens.INGRESS`、または:attr: `pyramid.tweens.EXCVIEW`です。
- 上記の任意の組み合わせの繰り返し可能です。これにより、必要なトゥイーンが含まれていない場合や複数の他のトゥイーンとの互換性がある場合にフォールバックを指定することができます。
「アンダー」は「ピラミッドの主なアプリケーションに近い」を意味し、「オーバー」は「要求よりも進んだ」という意味です。
たとえば、 `` add_tween( 'myapp.tfactory'、over = pyramid.tweens.MAIN)
を呼び出すと、点線で囲まれた名前 `` myapp.tfactory``で表されるトゥイーンファクトリを ` `` ptweens
)のメインピラミッドリクエストハンドラです。同様に、 `` add_tween( 'myapp.tfactory'、over = pyramid.tweens.MAIN、under = 'mypkg.someothertween') ``を呼び出すと、このトゥイーンファクトリをメインハンドラの上に配置しようとしますが、 'below'(a架空の) 'mypkg.someothertween' tweenファクトリー。`` under``(または `` over``)のすべてのオプションが現在の設定で見つからない場合、それはエラーです。一部のオプションが純粋に他のトゥイーンとの互換性のために指定されている場合は、MAINまたはINGRESSのフォールバックを追加するだけです。たとえば、 `` under =( 'mypkg.someothertween'、 'mypkg.someothertween2'、INGRESS) ``とします。この制約により、トゥイーンは、 'mypkg.someothertween'トゥイーン、 'mypkg.someothertween2'トゥイーン、およびINGRESSの両方に配置する必要があります。これらのいずれかが現在の構成にない場合、この制約は存在するトゥイーンに基づいて構成されます。
`` over``と `` under``のどちらも指定しない場合、 `` under = INGRESS``を指定するのと同じです。
明示的なトゥイーンの順序は、明らかにベストエフォートのみです。ピラミッドは可能な限りトゥイーンの暗黙の順序を提示しようとしますが、特定の順序を取得する唯一の確実な方法は明示的なトゥイーンの順序を使用することです。明示的な `` pyramid.tweens``設定値の設定を使用することで、暗黙的なトゥイーンの順序付けを常に上書きすることができます。
明示的なトゥイーンチェーンが `` pyramid.tweens``設定値を使って指定されている場合、 `` under``と `` over``引数は無視されます。
詳細については、ref: `registration_tweens`を参照してください。
-
add_route_predicate
(name, factory, weighs_more_than=None, weighs_less_than=None)¶ ルート述語ファクトリを追加します。ビュー述語は、後で:meth: `pyramid.config.Configurator.add_route`のキーワード引数として名前を付けることができます。
`` name``は述語の名前でなければなりません。これは有効なPython識別子でなければなりません(これは `` add_route``のキーワード引数として使用されます)。
`` factory``は:term: predicate factory`または:term: `dotted Python name``で、述語ファクトリを参照する必要があります。
詳細は:ref: `view_and_route_predicates`を参照してください。
バージョン 1.4 で追加.
-
add_subscriber_predicate
(name, factory, weighs_more_than=None, weighs_less_than=None)¶ バージョン 1.4 で追加.
サブスクライバ述語ファクトリを追加します。関連するサブスクライバ述語は、後で `` ** predicates``匿名キーワード引数辞書の:meth: `pyramid.config.Configurator.add_subscriber`のキーワード引数として指定できます。
`` name``は述語の名前でなければなりません。これは有効なPython識別子でなければなりません(これは:meth: 〜pyramid.config.Configurator.add_subscriber`の `** predicates``キーワード引数として使用されます)。
`` factory``は:term: predicate factory`または:term: `dotted Python name``で、述語ファクトリを参照する必要があります。
詳細は、:ref: `subscriber_predicates`を参照してください。
-
add_view_predicate
(name, factory, weighs_more_than=None, weighs_less_than=None)¶ バージョン 1.4 で追加.
ビュー述部ファクトリーを追加します。関連付けられたビュー述語は、 ``述語 `` anonyousキーワード引数辞書の:meth: `pyramid.config.Configurator.add_view`のキーワード引数として後で名前を付けることができます。
`` name``は述語の名前でなければなりません。それは有効なPython識別子でなければなりません(他の人が `` add_view``のキーワード引数として使用します)。
`` factory``は:term: predicate factory`または:term: `dotted Python name``で、述語ファクトリを参照する必要があります。
詳細は:ref: `view_and_route_predicates`を参照してください。
-
add_view_deriver
(deriver, name=None, under=None, over=None)¶ バージョン 1.7 で追加.
ビューパイプラインにa:term: `view deriver 'を追加します。ビューデリバーは、ビュー固有のオプションで制御可能なカスタムコードでビューをラップするために拡張機能の作成者が使用する機能です。
`` deriver``は:class: `pyramid.interfaces.IViewDeriver`インタフェースに従う呼び出し可能でなければなりません。
`` name``はビュー・デリバーの名前でなければなりません。ビュー・デリバーの名前には制限はありません。指定されていない場合、名前は `` deriver``の名前から構築されます。
`` under``と `` over``オプションは、ビューパイプラインのどこでデリバを使用するかについてのヒントを提供することによって、ビューデリバの順序を制御するために使用できます。各オプションは文字列または文字列のリストです。制約を完全に満足させるためには、それぞれ上下方向に少なくとも1つのビュー・デリバーが存在しなければならない。
`` under``はユーザー定義:term: view callable`に近いことを意味し、 `over``はビューのパイプライン入力に近いことを意味します。
`` over``のデフォルト値は `` rendered_view``で、 `` under``は `` decorated_view``です。これにより、ビューパイプラインの2つの間のどこかにデリバリが配置されます。もし、デリバーが `` decorated_view``のようにパイプラインのどこかに配置されなければならない場合、順序の早い方に `` under``を指定しなければならない、あるいは `` CyclicDependencyError``が起きるでしょうデリバーを並べ替えます。
詳細は、:ref: `view_derivers`を参照してください。
-
set_execution_policy
(policy)¶ 現在の設定で:app: Pyramid:term:実行ポリシー `をオーバーライドします。 ` policy``引数は、実行ポリシーのインスタンスを指す:class: `pyramid.interfaces.IExecutionPolicy`またはa:term:`ドット付きPython名 `のインスタンスでなければなりません。
-
set_request_factory
(factory)¶ `` factory``として渡されるオブジェクトは、:app: Pyramid`ルータがすべての要求オブジェクトを作成するために使用するオブジェクト(または、a:term:`オブジェクトを参照する点線のPython名 `)でなければなりません。このファクトリオブジェクトは:class: `pyramid.request.Request`クラス(特に __call__`、` blank`)と同じメソッドと属性を持たなければなりません。
参照:meth: pyramid.config.Configurator.add_request_method:カスタムメソッドとプロパティで要求オブジェクトを拡張する方法をあまり強要しません。
注釈
:class: pyramid.config.Configurator`コンストラクタに対する `request_factory``引数を使用すると、同じ目的を達成できます。
-
set_root_factory
(factory)¶ a:term: ルートファクトリ 'を現在の設定状態に追加します。 ` factory``引数が `` None``の場合、デフォルトのルートファクトリが登録されます。
注釈
:class: pyramid.config.Configurator`コンストラクタに対する `root_factory``引数を使用すると、同じ目的を達成できます。
-
set_session_factory
(factory)¶ :term: session factory`でアプリケーションを設定します。このメソッドが呼び出された場合、 ` factory``引数はそのファクトリに対してセッションファクトリ呼び出し可能またはa:term: `dotted Python name`でなければなりません。
注釈
:class: pyramid.config.Configurator`コンストラクタに対する `session_factory``引数を使用すると、同じ目的を達成できます。
-
set_view_mapper
(mapper)¶ a:term: view mapper 'を設定することで、term: view callable`オブジェクトを利用することができます。これは、物語のドキュメンテーションで説明されているように:app: `Pyramid`でサポートされているものとは異なる呼び出しシグネチャを実装します。
`` mapper``引数は、class: pyramid.interfaces.IViewMapperFactory`またはa:term:`ドット付きPython名 `を実装するオブジェクトでなければなりません。提供された ` mapper``はすべての後続:term: `view configuration`の登録で使われるデフォルトのビューマッパーになります。
参考
参照:ref: `using_a_view_mapper`を参照してください。
注釈
:class: pyramid.config.Configurator`コンストラクタへの `default_view_mapper``引数を使って、同じ目的を達成することができます。
:methodcategory: Extension Author APIs
-
action
(discriminator, callable=None, args=(), kw=None, order=0, introspectables=(), **extra)[ソース]¶ :meth: pyramid.config.Configurator.commit`が呼び出されたとき(または autocommit``が `True``のときに直ちに実行される)に実行されるアクションを登録します。
警告
このメソッドは通常、:app: Pyramid`アプリケーション開発者ではなく、:app: Pyramid`フレームワーク拡張の著者によってのみ使用されます。
「弁別者」はその行動を一意に識別する。それは与えられなければならないが、アクションが矛盾しないことを示すために `` None``にすることができる。ハッシュ値でなければなりません。
`` callable``は、アクションが実行されたときにアクションに関連付けられたタスクを実行する呼び出し可能なオブジェクトです。オプションです。
`` args``と `` kw``はそれぞれタプルとディクショナリオブジェクトであり、このアクションが実行されるときに `` callable``に渡されます。どちらもオプションです。
`` order``はグループ化の仕組みです。より低い次数のアクションは、より高い次数のアクションの前に実行されます(自動コミットが `` True``のときは効果がありません)。
`` introspectables``はterm: introspectable`オブジェクトのシーケンスです(または、イントロスペクターブルオブジェクトがこのアクションに関連付けられていない場合は空のシーケンス)。このコンフィギュレータの ` introspection``属性が `` False``の場合、これらのイントロスペクティブは無視されます。
`` extra``は余分なキーと値をアクションディクショナリに挿入する機能を提供します。
-
add_directive
(name, directive, action_wrap=True)[ソース]¶ コンフィギュレータにディレクティブメソッドを追加します。
警告
このメソッドは通常、:app: Pyramid`アプリケーション開発者ではなく、:app: Pyramid`フレームワーク拡張の著者によってのみ使用されます。
フレームワークエクステンダは、ユーザに `` config.add_directive( 'somename'、 'some.callable')
を呼び出すよう指示することによって、コンフィグレータにディレクティブメソッドを追加することができます。これにより `` some.callable``は `` config.somename``としてアクセス可能になります。 `` some.callable``は `` config``を最初の引数として受け取り、任意の位置とキーワードの引数を受け付ける関数でなければなりません。アクションを実行するには、必要に応じてconfig.actionを使用する必要があります。ディレクティブメソッドは、 `` add_view
、 `` add_route``などの '組み込み'ディレクティブのように呼び出すことができます。`` action_wrap``引数は、競合する可能性のあるディスクリミネータと `` config.action``を実行するディレクティブに対して `` True``でなければなりません。 `` action_wrap``は、ディレクティブをより正確な衝突原因情報を提供するデコレータにラップさせます。
`` add_directive``は競合検出に関与せず、 `` add_directive``への呼び出しは以前の呼び出しを無効にします。
-
with_package
(package)[ソース]¶ このコンフィギュレータと同じレジストリを持つ新しいConfiguratorインスタンスを返します。 `` package``は実際のPythonパッケージオブジェクトか、パッケージを表す:term: `dotted Python name`です。
-
derive_view
(view, attr=None, renderer=None)¶ `` view``オブジェクトとして提供された関数、インスタンス、クラス(または:term: dotted Python name`を参照)を使ってa:term: view callable`を作成します。
警告
このメソッドは通常、:app: Pyramid`アプリケーション開発者ではなく、:app: Pyramid`フレームワーク拡張の著者によってのみ使用されます。
これは、a:app: Pyramid`ビューの呼び出し可能な要件を満たす関数、インスタンス、またはクラスに対して 'proxy' view callablesを登録する必要がある、プラグイン可能なシステムを作成するフレームワークエクステンダにとって有用です。例えば、別のフレームワークの ` some_other_framework``関数は、ユーザがビューを呼び出し可能にしたいと思っているかもしれませんが、:app: Pyramid`ビューとしてラッパーを登録する前に自分自身で呼び出し可能なビューをラップしたいかもしれません呼び出し可能。 a:app: `Pyramid`ビューは、呼び出し可能ないくつかの有効なオブジェクトのどれかである可能性があるため、フレームワークエクステンダはユーザ提供のオブジェクトの呼び出し方法を知らないでしょう。 ` derive_view``を通してそれを実行すると、 `` context``と `` request``という2つの引数を受け入れる呼び出し可能関数に正規化されます。
例えば:
def some_other_framework(user_supplied_view): config = Configurator(reg) proxy_view = config.derive_view(user_supplied_view) def my_wrapper(context, request): do_something_that_mutates(request) return proxy_view(context, request) config.add_view(my_wrapper)
提供される `` view``オブジェクトは、次のいずれかです。
- :term: request`を単一の位置引数として受け入れ、:term: response`オブジェクトを返す関数または他の非クラス呼び出し可能オブジェクトです。
- `` context、request``という2つの位置引数を受け取り、a:term: `response`オブジェクトを返す関数または他の非クラス呼び出し可能オブジェクトです。
- `` request``というコンストラクタで単一の位置引数を受け取り、:term: response`オブジェクトを返す引数を受け入れない `__call__``メソッドを持つクラスです。
- context、request`という名前の2つの位置引数を受け取り、:term: response`オブジェクトを返す引数を受け入れない `` __call__``メソッドを持つクラスです。
- A:term: dotted Python name。上のオブジェクトのどれかを指します。
このAPIは、 `` context、request``の引数を受け取り、 `` view``オブジェクトを呼び出した結果を返す呼び出し可能オブジェクトを返します。
`` attr``キーワードの引数は、ビューオブジェクトがクラスの場合に最も便利です。これは、呼び出し可能として使用するメソッドの名前を指定します。 `` attr``が提供されていない場合、属性は実質的に `` __call__``にデフォルト設定されます。詳細は:ref: `class_as_view`を参照してください。
`` renderer``キーワード引数はレンダラー名でなければなりません。これが指定された場合、返された呼び出し可能オブジェクトは:term: renderer`を使ってユーザ提供のビュー結果を:term: response`オブジェクトに変換します。 `` renderer``引数が与えられていない場合、ユーザ提供ビューは:term: `response`オブジェクトを返さなければなりません。
:methodcategory: ユーティリティメソッド
:methodcategory: `ZCA関連のAPI '
-
hook_zca
()¶ 引数:data: pyramid.threadlocal.get_current_registry`を指定して:func: zope.component.getSiteManager.sethook`を呼び出し、:term: Zopeコンポーネントアーキテクチャ 'global' APIを生成します:func: zope.component .getSiteManager、:func: zope.component.getAdapter`などを使用して、:app: Pyramid`:term: `アプリケーションレジストリ`を使用します。
-
unhook_zca
()¶ :meth: pyramid.config.Configurator.hook_zca`のアクションを元に戻すには、func: zope.component.getSiteManager.reset`を呼び出します。
-
setup_registry
(settings=None, root_factory=None, authentication_policy=None, authorization_policy=None, renderers=None, debug_logger=None, locale_negotiator=None, request_factory=None, response_factory=None, default_permission=None, session_factory=None, default_view_mapper=None, exceptionresponse_view=<function default_exceptionresponse_view>)[ソース]¶ : `` Non`` `` `` `` `` `` `` `` 引数を:term: Configurator`コンストラクタに渡すと、レジストリに対して初期設定は行われません。これは、あなたが渡したレジストリが、別のコンフィギュレータを介して:app: Pyramid 'の下で使用するために既に初期化されている可能性があるためです。ただし、Configuratorコンストラクタの結果として作成されたレジストリの代わりにグローバルレジストリを使用する場合や、レジストリの初期設定をリセットしたい場合などは、明示的にしたい場合もありますConfiguratorに関連付けられたレジストリを、app: `Pyramid`の下で使用するために初期化します。この初期化を行うには ` setup_registry``を使います。
`` setup_registry``は、コンフィギュレータのコンストラクタの説明に従って、コンフィグレータの現在のレジストリを使って、設定、ルートファクトリ、セキュリティポリシー、レンダラ、デバッグロガー、ロケールネゴシエータ、およびその他のさまざまな設定を行います。
:methodcategory: `ヘルパーAPIのテスト '
-
testing_add_renderer
(path, renderer=None)¶ ユニット/統合テストヘルパー:レンダラーを `` path``(通常相対ファイル名ala `` templates / foo.pt``または資産指定)に登録し、レンダラーオブジェクトを返します。 `` renderer``引数がNoneの場合、 'ダミー'レンダラが使用されます。この関数は:func: pyramid.renderers.render`関数または:func: pyramid.renderers.render_to_response`関数または他の `` render_ * ``や `` get_ * `` APIを呼び出すコードをテストするときに便利です:mod: `pyramid.renderers`モジュールの中にあります。
レンダラーファクトリタイプ( `` foo.pt``など)を表す `` path``引数を使ってこのメソッドを呼び出すことは、通常、 `` chameleon_zpt``レンダリングファクトリを意味します)、そのタイプに登録されている既存のレンダラーファクトリを奪うことに注意してください。
注釈
このメソッドは別名 `testing_add_template`(旧名)の下でも利用できます。
-
testing_add_subscriber
(event_iface=None)¶ ユニット/統合テストヘルパー: `` event_iface``型のイベントをリッスンするa:term: `subscriber`を登録します。このメソッドは、イベントがキャプチャされるたびにサブスクライバによって追加されるリストオブジェクトを返します。
`` event_iface``引数が意味する値と一致するイベントがディスパッチされると、そのイベントはリストに追加されます。次に、リスト内の値を予想されるイベント通知と比較できます。このメソッドは、meth: pyramid.registry.Registry.notify`または:func: zope.component.event.dispatch`を呼び出すコードをテストするときに便利です。
`` event_iface``( `` None``)のデフォルト値は、* any *種類のイベントに対して登録されたサブスクライバを意味します。
-
testing_resources
(resources)¶ ユニット/統合テストヘルパー::func: pyramid.traversal.find_resource APIで解決できるterm:` resource`オブジェクトの辞書を登録します。
:func: pyramid.traversal.find_resource APIは、その引数の1つとしてパスを指定して呼び出されます。このメソッドを呼び出すときに登録した辞書がそのパスを文字列キー(例えば `` / foo / bar``や `` foo / bar``)として含んでいる場合、対応する値は `` find_resource``に返されますfunc: `pyramid.traversal.find_resource`が同等のパス文字列またはタプルで呼び出されます。
-
testing_securitypolicy
(userid=None, groupids=(), permissive=True, remember_result=None, forget_result=None)¶ Unit / integration testing helper:faux:app: `Pyramid`セキュリティポリシーのペアを登録します:a:term:`認証ポリシー `と:term:`認証ポリシー `。
登録された:term: 認証ポリシー 'の動作は、 permissive``引数に依存します。 ` permissive``が真であれば、permissive:term: authorization policy`が登録されます。このポリシーはすべてのアクセスを許可します。 ` permissive``がfalseの場合、nonpermissive:term: `authorization policy`が登録されます。このポリシーはすべてのアクセスを拒否します。
`` remember_result``が指定されていれば、faux認証ポリシーの `` remember``メソッドによって返された結果でなければなりません。提供されていない(または提供されていて `` None``である)場合、デフォルト値 `` [] ``(空リスト)は `` remember``によって返されます。
`` forget_result``が指定されている場合は、faux認証ポリシーの `` forget``メソッドによって返された結果でなければなりません。提供されていない(または提供されていて `` None``である)場合、デフォルト値 `` [] ``(空リスト)は `` forget``によって返されます。
登録された:term: 認証ポリシー`の動作は、 ` userid``と `` groupids``引数の値によって異なります。認証ポリシーは、 `` userid``引数によって暗示されたuserid識別子と、 `` groupids``引数によって暗示されるグループidを返します。:attr: pyramid.request.Request.authenticated_userid`または:attr: pyramid .request.Request.effective_principals` APIが使用されます。
この関数は、meth: pyramid.request.Request.has_permission、:attr:` pyramid.request.Request.authenticated_userid`、:attr: pyramid.request.Request.effective_principalsという名前のAPIを使用するコードをテストするときに最も便利です。 `、および:func: pyramid.security.principals_allowed_by_permission`。
バージョン 1.4 で追加: `` remember_result``引数です。
バージョン 1.4 で追加: `` forget_result``引数です。
:methodcategory: Attributes
-
-
global_registries
¶ :app: Pyramid`アプリケーション用に作成されたレジストリのセット。現在のプロセスの:meth: pyramid.config.Configurator.make_wsgi_app`への各呼び出しに対して1つです。オブジェクト自体は反復をサポートし、ロードされた最後のレジストリを含む `` last``プロパティを持っています。
このオブジェクトに含まれるレジストリはweakrefsとして格納されているため、実際に使用されているアプリケーションの存続期間中にのみ存在します。
-
class
not_
(value)[ソース]¶ 任意の述語値の意味を、class: `pyramid.config.not_`への呼び出しでラップすることによって、その意味を逆転させることができます。
1 2 3 4 5 6 7
from pyramid.config import not_ config.add_view( 'mypackage.views.my_view', route_name='ok', request_method=not_('POST') )
上記の例では、少なくとも他のビューがより具体的でない場合、リクエストメソッドが* * `POST`でない場合にビューが呼び出されることを保証します。
述部の値を `` not_``にラップするこの手法は、述部の値が受け入れられればどこでも使用できます:
- :meth: pyramid.config.Configurator.add_view
- :meth: pyramid.config.Configurator.add_route
- :meth: pyramid.config.Configurator.add_subscriber
- :meth: pyramid.view.view_config
- :meth: pyramid.events.subscriber
バージョン 1.5 で追加.
-
PHASE0_CONFIG
¶
-
PHASE1_CONFIG
¶
-
PHASE2_CONFIG
¶
-
PHASE3_CONFIG
¶