1

WebSocketメッセージをサーバーへのAJAXリクエストに変換するアプリを作成しています。主に、Pyramidにはすでに優れたURLディスパッチシステムがあり、それを使用しないのはばかげているという事実に基づいています。

問題は、Pyramid(おそらくインスタンス化されたRequestオブジェクト)のURLを、呼び出し可能なビューに応じてディスパッチし、呼び出し可能なビューを取得する簡単な方法があるかどうかです。または、少なくともリクエストに関連して呼び出し可能なビューの出力を取得しますか?

基本的にHTTPクライアント全体をエミュレートして応答を返す「prequest.py」のスクリプトを試しました(まだ機能させることはできませんが、ソースを調べるのは理にかなっています)。そのようにするために。

4

2 に答える 2

2

コマンドのコードを再利用してpview、パスをビュー参照に変換できます。

from pyramid.scripts.pviews import PViewsCommand

pvcomm = PViewsCommand([])
view = pvcomm._find_view(path, request.registry)

これを行うための実際のコードは少し複雑ですが、PViewsCommandすでにすべてを行っています。

于 2013-02-05T16:34:33.090 に答える
0

最新バージョンのPyramid(1.4a1)でRouter.invoke_subrequestを使用してそれを行うことができました。

これにより、ルーティングに関連するすべての機能が有効になります。URLディスパッチ、パラメータの受け渡し、トゥイーン。

ここでそれについて読むことができます:http://docs.pylonsproject.org/projects/pyramid/en/latest/api/request.html#pyramid.request.Request.invoke_subrequest

于 2013-02-08T13:38:21.333 に答える