以 X 开头的路径的 Flask 应用路由



我是Flaskpython的初学者。我想为以"/favicon"开头的路径创建一个处理程序函数。例如,应处理以下内容:

  • /网站图标
  • /faviconFOO
  • /favicon_bar
  • /
  • favicon/buzz
  • /favicon1337

不应处理以下情况:

  • /法维科
  • /favicoN
  • /无论什么

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

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

我该怎么做?

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

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

您也可以使用string

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

但是使用string不会捕获/字符串。 因此,如果使用字符串,包含类似 favicon/buzz 的东西url's不会被它缓存,另一方面path也会捕获/。 所以你应该选择第一个选项。

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

相关内容

  • 没有找到相关文章

最新更新