5

私は yapps を使用して、ピラミッド内で LaTex っぽい言語のパーサーを生成します (たとえば\begin{itemize}、対応する<ul>-Tags のようなものを翻訳するため)。1 つのコマンド (つまり) は、 (または)\ref{SOMEID}の呼び出しを介してルートを構築し、id をそれに渡す必要があります。この呼び出しは、yapps によって生成されたコードと私が定義した文法の奥深くで発生するため、リクエスト オブジェクトを渡す可能性はまったくありません。route_urlroute_path

グローバルリクエストオブジェクトのようなものはありますか? または、私はそれを使用すべきではないと予測しているので、リクエスト オブジェクトなしで (パラメータに依存する) ルートを構築する可能性はありますか?

4

1 に答える 1

7

route_urlリクエストとレジストリの両方が必要です ( request.registry)。リクエストに関連する URL を生成し、レジストリからすべてのルートとその他の設定のリストにアクセスします。したがって、関心のあるパラメーターを使用してダミーのリクエストを生成する必要があります。例えば:

from pyramid.request import Request

request = Request.blank('/', base_url='https://example.com/prefix')
request.registry = config.registry

これで、このリクエストをどこにでも保存できるようになりました。ホスト名/ポート ( example.com:443)、アプリがマウントされているプレフィックス ( /prefix)、URI スキーム ( https) など、サイトに関するすべてを表すのに適しています。

これをコードに深く組み込む必要がある場合は、グローバルにするか、利用可能なコンテキスト/レジストリにアタッチする必要がありますが、私が示したのは、必要な要求を行う方法です。

于 2013-04-10T22:35:28.743 に答える