Маршрут приложения 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

Другие вопросы по тегам