我试图通过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
函数(没有尾部斜杠)。我怎么能这样做?
答案 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')
注意最后一行。