bottlepy路由匹配任何具有例外的URL

时间:2014-06-09 17:36:50

标签: python regex bottle

我在瓶子上为每个请求写一个模板。因此localhost和locahost / mypage以及localhost / mypage / about将调用相同的模板。我在这里查看了一些关于匹配所有网址的好例子:

from bottle import route, run, template, static_file
@route("/<url:re:.+>")
def hello(url):     
   return template('page_template', url=url)    

@route('/static/<filepath:path>', name='static')
def server_static(filepath):
    return static_file(filepath, root='static')

run()

我的问题是: 1)它与根不匹配。因此,如果我键入&#34; localhost&#34;,它就不起作用。 2)由于有静态文件,我有另一条静态文件服务路由。因此,如果我键入localhost / static / page,它就不会返回&#34; hello world&#34;。

我相信我需要修改正则表达式(/<:re:.+>)来处理这两种情况。任何帮助将不胜感激,

@迈克尔

1 个答案:

答案 0 :(得分:0)

好消息:你可以&#34;堆叠&#34;路线非常简单。就这样做:

@route("/")
@route("/<url:re:.+>")
def hello(url):     
   return template('page_template', url=url)    

这会将root视为与现有正则表达式路由相同。


对于重叠路由,根据the documentation,动态路由按照定义的顺序进行评估。