将包含斜杠的参数传递给瓶子

时间:2013-11-04 12:10:10

标签: python bottle

我需要将包含斜杠的字符串通过url中的最后一个参数传递给我的bottlepy服务器,但由于斜杠被视为参数分隔符,因此服务器不会按照我需要的方式处理它。 我找到了一个关于flask如何支持这个的页面: http://flask.pocoo.org/snippets/76/ 但是还没有在瓶子里找到类似的解决方案

1 个答案:

答案 0 :(得分:2)

听起来像你想要的:path

  

:path匹配所有字符,包括a中的斜杠字符   非贪婪的方式,可用于匹配多个路径段。

例如,

@route('/root/<path:thepath>')
def callback(thepath):
    # `thepath` is everything after "/root/" in the URI.
    ...

编辑:回应OP的评论(如下),这是一个适合我的片段:

from bottle import Bottle, route

app = Bottle()

@app.route('/add/<uid>/<collection>/<group>/<items:path>')
def add(uid, collection, group, items):
    return 'your uri path args: {}, {}, {}, {}\n'.format(uid, collection, group, items)

app.run(host='0.0.0.0', port=8081)

收率:

% ~>curl 'http://127.0.0.1:8081/add/1/2/3/and/now/a/path'
your uri path args: 1, 2, 3, and/now/a/path