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

Len*_*and 2 python path flask python-3.x app-route

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

  • /收藏夹
  • /faviconFOO
  • /favicon_bar
  • /收藏夹/嗡嗡声
  • /favicon1337

以下情况不应处理:

  • /favico
  • /收藏夹
  • /任何

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

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

我怎样才能做到这一点?

sen*_*aps 10

我会做一个catch-allurl,然后尝试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'))
Run Code Online (Sandbox Code Playgroud)

你也可以使用string

@app.route('/<string:text>', methods=['GET'])
Run Code Online (Sandbox Code Playgroud)

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

您可以查看flask站点中的路由文档。你should创造了一个更好的条件,而不是if x in Y因为如果你通过类似的东西它会失败/thingfavicon