将不同的URL映射到同一视图

时间:2012-04-30 12:32:07

标签: python pyramid

这似乎微不足道,但我找不到这个问题的有效答案。

假设我有两个不同的链接'/'和'/ home',我希望它们指向同一个视图。 (这表示用户是打开xyz.com还是xyz.com/home,将显示相同的页面。)

在金字塔中我试过

config.add_route('home','/')
config.add_route('home','home/')

但它引发了以下异常

pyramid.exceptions.ConfigurationConflictError: Conflicting configuration actions
  For: ('route', 'home')

我该如何实际实现这个?

1 个答案:

答案 0 :(得分:22)

您需要在不同的路径名下添加它们(每个应用程序必须是唯一的):

config.add_route('home','/')
config.add_route('home1','home/')

然后为两者配置相同的视图:

config.add_view(yourview, route_name='home')
config.add_view(yourview, route_name='home1')

或者,如果使用@view_config装饰器,请对您的方法进行双重修饰:

@view_config(route_name='home')
@view_config(route_name='home1') 
def your_method(request):
   .....