Неглобальное решение
Добавьте второй маршрут для каждого вида, который вы хотите перенаправить.
config = Configurator()
def add_auto_route(name, pattern, **kw):
config.add_route(name, pattern, **kw)
if not pattern.endswith('/'):
config.add_route(name + '-auto', pattern + '/')
def redirector(request):
return HTTPMovedPermanently(request.route_url(name))
config.add_view(redirector, route_name=name + '-auto')
add_auto_route('list_reports', '/reports')
Глобально перенаправить все маршруты (никогда не поддерживаются косые черты)
Просто перепишите URL-адреса. Это можно сделать через pyramid_rewrite или внешне через ваш веб-сервер.
config = Configurator()
config.include('pyramid_rewrite')
config.add_rewrite_rule(r'/(?P<path>.*)/', r'/%(path)s')
Попытка перенаправления, если маршрут не найден
Вырвите AppendSlashNotFoundFactory
из источника пирамиды и переверните его. Извините, я не делаю этого для вас, но так же просто.