使用瓶子Sehttp://bottlepy.org/docs/dev/routing.html#wildcard-filters
我想接受任何网址,然后用网址做点什么。
e.g。
@bottle.route("/<url:path>")
def index(url):
return "Your url is " + url
这很棘手,因为URL中包含斜杠,而Bottle则用斜杠分割。
答案 0 :(得分:16)
基于新瓶(v0.10),使用重新过滤器:
@bottle.route("/<url:re:.+>")
您也可以使用旧参数执行此操作:
@bottle.route("/:url#.+#")
答案 1 :(得分:8)
我认为你(OP)开始走上正轨。 <mypath:path>
应该做到这一点。
我只是用瓶子0.10试了一下它就可以了:
~>python test.py >& /dev/null &
[1] 37316
~>wget -qO- 'http://127.0.0.1:8090/hello/cruel/world'
Your path is: /hello/cruel/world
这是我的代码。在系统上运行它会发生什么?
from bottle import route, run
@route('<mypath:path>')
def test(mypath):
return 'Your path is: %s\n' % mypath
run(host='localhost', port=8090)
干杯!
答案 2 :(得分:0)
@bottle.route("/hello/:myurl")
def something(myurl):
print myurl
return "Your url was %s" % myurl
应该可以正常工作
然后我会将正则表达式写入函数本身。
或者您可以使用新的过滤器,但要做到这一点,您必须编写过滤器功能并将其添加到应用程序。
答案 3 :(得分:0)
在瓶子0.12.9中,我这样做是为了实现可选的动态路线:
@bottle.route("/<url:re:.*>")
def index(url):
return "Your url is " + url