Предварительная обработка параметров маршрута в Python Routes

1

Я использую Routes для выполнения всего задания сопоставления URL. Здесь типичный маршрут в моем приложении:

map.routes('route', '/show/{title:[^/]+}', controller='generator', filter_=postprocess_title)

Довольно часто мне приходится выделять некоторые символы (например, пробелы и подчеркивания) из параметра {title}. В настоящее время существует один вызов для каждого метода в контроллере для функции, которая выполняет это преобразование. Это не очень удобно, и я бы хотел, чтобы Маршруты выполняли эту работу. Возможно ли это?

Теги:
routes
parameters

1 ответ

0

Я не знаком с Маршрутами, и поэтому не знаю, возможно ли, что вы после этого, с помощью маршрутов.

Но, может быть, вы могли бы украсить свои методы контроллера декоратором, который по необходимости лишает символы из параметров?

Не уверен, что это было бы более удобно. Но для меня использование декоратора имеет другое "чувство", чем использование того же самого встроенного внутри метода контроллера.

Например:


@remove_spaces_from('title')
def my_controller(...):
    ...

Если вы не знакомы с декораторами, поиск Google для "декораторов python" поможет вам начать работу. Ключевой момент для запоминания: когда нужны аргументы для декоратора, вам нужно два уровня обертывания в декораторе.

  • 0
    Спасибо за ваше предложение, но я бы хотел как можно больше избегать дублирования кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню