金字塔:如何在视图中获取所有应用程序的路线?

Gre*_*een 2 python python-3.x pyramid

我想看看我的申请所有的路线.将它们作为key => value pair的响应返回:

'route1' => '{foo:\w+}'
'route2' => '{baz:\w+\d+}'
... and so on
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在我看来如何.例如,这是我的看法.我希望它返回路线图.我这样做:

@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)
Run Code Online (Sandbox Code Playgroud)

有一个方法的RoutesConfiguratorMixinget_routes_mapper.我试图导入该类并调用其方法,但得到的错误registry是在它的实例中没有:

from pyramid.config.routes import RoutesConfiguratorMixin as Router

r = Router();
routes = r.get_routes_mapper();
## ... and the same code as above
Run Code Online (Sandbox Code Playgroud)

不行.

Mic*_*kel 8

有两种方式,一种是支持的(公共),另一种是不支持的(私有).

选项#1是使用introspector,这里解释.

选项#2是使用路径映射器(不是公共API),就像金字塔debugtoolbar在其路由面板中所做的那样.


pan*_*sen 5

proutesPyramid 安装了一个为此目的调用的 bin 脚本。