我在瓶子上为每个请求写一个模板。因此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:.+>)来处理这两种情况。任何帮助将不胜感激,
@迈克尔
答案 0 :(得分:0)
好消息:你可以&#34;堆叠&#34;路线非常简单。就这样做:
@route("/")
@route("/<url:re:.+>")
def hello(url):
return template('page_template', url=url)
这会将root视为与现有正则表达式路由相同。
对于重叠路由,根据the documentation,动态路由按照定义的顺序进行评估。