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

Flask app route for paths that start with X

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

不应处理以下内容:

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

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

我该怎么做?

我会做一个 catch-all url,然后尝试从视图内部使用 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 站点中的 routing 文档。而且你 should 创建了一个比 if x in Y 更好的条件,因为如果你通过了 /thingfavicon

这样的东西,它就会失败