Я пытаюсь добавить фильтр для шестнадцатеричных цветовых кодов (должен принимать форматы, такие как: 0xFF0000 или FF0000) в приложение для бутылок.Фильтр подстановочных бутылок для шестнадцатеричного цветового кода
Я последовал за эту бутылку учебник https://bottlepy.org/docs/dev/routing.html:
Вы можете добавить свои собственные фильтры к маршрутизатору. Все, что вам нужно, это функция, возвращающая три элемента: строка регулярного выражения, вызываемая для преобразования фрагмента URL-адреса в значение python и вызываемый, который делает обратное. Функция фильтра называется строкой конфигурации в качестве единственного параметра и может разобрать его по мере необходимости:
Но каждый раз, когда я называю моей функции:
@app.route('/<color:hexa>')
def call(color):
....
Я получаю 404:
Not found: '/0x0000FF'
Возможно, я слепой, но я просто не знаю, чего у меня нет. Вот мой фильтр:
def hexa_filter(config):
regexp = r'^(0[xX])?[a-fA-F0-9]+$'
def to_python(match):
return int(match, 0)
def to_url(hexNum):
return str(hexNum)
return regexp, to_python, to_url
app.router.add_filter('hexa', hexa_filter)
Удивительно, спасибо! работает отлично! Мне, вероятно, придется немного поработать над этим! –