包含金字塔配置时如何使用裸路径(无斜线)?

时间:2017-05-16 19:57:54

标签: python url-routing pyramid

我试图通过including a callable创建包含多个config.add_route函数的模块化金字塔应用程序。在我的 init .py:

def devices_include(config):
    config.add_route("devices.collection", "/")
    config.add_route("devices.single", "/{device_id}")
    ...

def main(global_config, **settings):
    ...
    config.include(devices_include, route_prefix="/devices")

此代码有效,这意味着当我转到/devices/时,它会运行devices.collection函数,当我转到/devices/1时,它会运行devices.single函数。但是,我希望能够在转到devices.collection时运行/devices函数(没有尾部斜杠)。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

随意深入研究https://github.com/Pylons/pyramid/issues/406和许多相关问题。简短的回答是,如果您希望它工作,您将需要停止使用route_prefix,或者您可以执行一些hacky内部URL重写。这是Pyramid 2.0正在讨论的一个功能。

答案 1 :(得分:0)

目前,根据Michael Merickel的回答,这是不可能的。

但是有一种解决方法:

def main(global_config, **settings):
    ...
    config.include(devices_include, route_prefix="/devices")
    config.add_route('devices.collection', '/devices')

注意最后一行。