Pyramid路线上的可选URL参数

时间:2017-02-12 21:13:21

标签: python url-routing pyramid

例如,我想使用相同的路线提交表单,并根据其ID号显示表单的内容。

我认为是一个重新匹配的参数:

config.add_route('poll', '/poll/{id}*')

已经足够了,但它不起作用。当POST方法完成时,我希望它加载显示结果的页面,但它会抛出404错误。

1 个答案:

答案 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')

相关问题