Маршрут приложения Flask для путей, начинающихся с X
Я новичок в Flask и Python. Я хочу создать функцию-обработчик для путей, начинающихся с "/favicon". Например, следующее должно быть обработано:
- / Favicon
- / faviconFOO
- / favicon_bar
- / Favicon / шум
- /favicon1337
Следующее не должно быть обработано:
- / favico
- / Favicon
- /без разницы
Если Flask поддерживает групповые символы, это будет "/favicon*"
РЕДАКТИРОВАТЬ: мне не нужна поддержка регулярных выражений.
Как я могу это сделать?
1 ответ
Я бы сделал catch-all
URL, а затем попробуйте использовать 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
с другой стороны поймал бы /
тоже. поэтому вы должны пойти с первым вариантом.
Вы можете посмотреть маршрутную документацию на сайте фляги. и ты should
создать лучшую условную if x in Y
потому что он потерпит неудачу, если вы прошли что-то вроде /thingfavicon