例如,我想使用相同的路线提交表单,并根据其ID号显示表单的内容。
我认为是一个重新匹配的参数:
config.add_route('poll', '/poll/{id}*')
已经足够了,但它不起作用。当POST方法完成时,我希望它加载显示结果的页面,但它会抛出404错误。
答案 0 :(得分:3)
来自http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/urldispatch.html#route-pattern-syntax:
config.add_route('poll', '/poll/{id:.*}')
请注意,在通过request.route_url('poll', id='5')
生成网址时,需要id
参数,您无法将其排除在外。您可以使用预生成器解决此问题:
def pregen(request, elements, kw):
kw.setdefault('id', '')
return elements, kw
config.add_route('poll', '/poll/{id:.*}', pregenerator=pregen)
这样您就可以使用request.route_url('poll')
以及request.route_url('poll', id='5')
。