我是Flask和python的初学者。我想为以“/favicon”开头的路径创建一个处理函数。例如,应处理以下内容:
- /网站图标
- /faviconFOO
- /favicon_bar
- /favicon/嗡嗡声
- /favicon1337
不应处理以下情况:
- /favico
- /favicon
- /任何
如果 Flask 支持通配符,它将是“/favicon*”
编辑:我不需要支持正则表达式。
我怎样才能做到这一点?
我是Flask和python的初学者。我想为以“/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
不会捕获/
字符串。所以如果使用 string ,url's
包含类似的东西favicon/buzz
不会被它缓存,path
另一方面也会 catch /
。所以你应该选择第一个选项。
您可以查看烧瓶站点中的路由文档。你should
创造了一个更好的条件而不是if x in Y
因为如果你通过了类似的东西它会失败/thingfavicon