Pyramids route_url with additional query arguments

2019-03-25 02:41发布

In Pyramids framework, functions route_path and route_url are used to generate urls from routes configuration. So, if I have route:

config.add_route('idea', 'ideas/{idea}')

I am able to generate the url for it using

request.route_url('idea', idea="great");

However, sometimes I may want to add additional get parameters to generate url like:

idea/great?sort=asc

How to do this?

I have tried

request.route_url('idea', idea='great', sort='asc')

But that didn't work.

2条回答
做自己的国王
2楼-- · 2019-03-25 03:30

You can add additional query arguments to url passing the _query dictionary

request.route_url('idea', idea='great', _query={'sort':'asc'})
查看更多
孤傲高冷的网名
3楼-- · 2019-03-25 03:40

If you are using Mako templates, _query={...} won't work; instead you need to do:

${request.route_url('idea', idea='great', _query=(('sort', 'asc'),))}

The tuple of 2-tuples works as a dictionary.

查看更多
登录 后发表回答