路径数据类型不会带有'?'的完整网址在里面

时间:2012-04-29 08:59:27

标签: python bottle

示例:/open/123/http://x.com/wordpress/?p = 592

@route('/open/<item_id:int>/<url:path>')
def open(item_id , url):
    print url

此印刷品的输出是

'http://x.com/wordpress/'

我想要的是完整的网址

'http://x.com/wordpress/?p=592'

我想要完整的网址,因为我要记录用户点击,然后指示他。

2 个答案:

答案 0 :(得分:3)

路由仅匹配URL 路径,而不是查询(RFC 3986第3.4节)。试试这个:

@route('/open/<item_id:int>/<url:path>')
def open(item_id , url):
    if request.query_string:
        url += '?' + request.query_string
    print url

答案 1 :(得分:1)

你需要像

这样的东西
@route('/open/<item_id:int>/<url:path>/<stuff_after_slash:whatevertype>')
def open(item_id , url, stuff_after_slash):
    print url + stuff_after_slash