Предварительная обработка параметров маршрута в Python Routes - PullRequest
1 голос
/ 02 июня 2009

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

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

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

1 Ответ

0 голосов
/ 02 июня 2009

Я не знаком с маршрутами, и поэтому я не знаю, возможно ли то, что вам нужно, с маршрутами.

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

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

Например:


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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...