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

Red*_*ron 12 python pyramid

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

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

在金字塔我试过

config.add_route('home','/')
config.add_route('home','home/')
Run Code Online (Sandbox Code Playgroud)

但它引发了以下异常

pyramid.exceptions.ConfigurationConflictError: Conflicting configuration actions
  For: ('route', 'home')
Run Code Online (Sandbox Code Playgroud)

我该如何实现呢?

sou*_*eck 23

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

config.add_route('home','/')
config.add_route('home1','home/')
Run Code Online (Sandbox Code Playgroud)

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

config.add_view(yourview, route_name='home')
config.add_view(yourview, route_name='home1')
Run Code Online (Sandbox Code Playgroud)

或者,在使用@view_config装饰器的情况下,双重装饰你的方法:

@view_config(route_name='home')
@view_config(route_name='home1') 
def your_method(request):
   ..... 
Run Code Online (Sandbox Code Playgroud)