5

アプリケーションが持っているすべてのルートを見たいです。key=>value ペアのような応答としてそれらを返します。

'route1' => '{foo:\w+}'
'route2' => '{baz:\w+\d+}'
... and so on

しかし、それらを自分の視野に入れる方法がわかりません。たとえば、これは私の見解です。ルートのマップを返したい。私はこれをします:

@view_config(route_name='route1')
def someView(request):
    routes = request.registry.settings.getRoutes()  ## what should I print here to get a map of routes?
    r = ''
    for k,v in sorted(routes.items()):
        r += str(k) + "=>" + str(v) + "<br/>";
    return Response(r)

メソッドRoutesConfiguratorMixin付きのクラスがあります。get_routes_mapperクラスをインポートしようとしてそのメソッドを呼び出しましたがregistry、インスタンスに no が含まれているというエラーが発生しました。

from pyramid.config.routes import RoutesConfiguratorMixin as Router

r = Router();
routes = r.get_routes_mapper();
## ... and the same code as above

うまくいきません。

4

3 に答える 3

10

サポートされている方法 (パブリック) とサポートされていない方法 (プライベート) の 2 つの方法があります。

オプション #1 はイントロスペクターを使用することであり、ここで説明されています。

オプション #2 は、ピラミッド debugtoolbar がルート パネルで行うように、ルート マッパー (パブリック API ではない) を使用することです。

于 2013-02-18T04:02:20.707 に答える