以X开头的路径的Flask app路由

时间:2017-10-17 07:14:03

标签: python python-3.x flask path app-route

我是 Flask python 的初学者。我想为以" / favicon"开头的路径创建处理函数。例如,应该处理以下内容:

  • /图标
  • / faviconFOO
  • / favicon_bar
  • /图标/蜂鸣
  • / favicon1337

不应处理以下事项:

  • / favico
  • /图标
  • /不管

如果Flask支持通配符,它​​将是" / favicon *"

编辑:我不需要支持正则表达式。

我该怎么做?

1 个答案:

答案 0 :(得分:3)

我会做一个catch-all网址,然后尝试在视图中使用wildcard

@app.route('/<path:text>', methods=['GET', 'POST'])
def all_routes(text):
    if 'favicon' in text
        #do stuff
    else:
        return redirect(url_for('404_error'))

您也可以使用string

@app.route('/<string:text>', methods=['GEt'])

但使用string无法捕获/个字符串。因此,如果使用字符串,url's包含favicon/buzz之类的内容将不被其缓存,另一方面path也会捕获/。所以你应该选择第一个选项。

您可以查看烧瓶网站中的routing文档。并且您should创建了一个比if x in Y更好的条件,因为如果您传递了类似/thingfavicon

的内容,它将会失败