2009-06-02 4 views
1

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

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

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

ответ

0

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

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

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

Например:


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

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

+0

Благодарим вас за предложение, но я хотел бы избежать дублирования кода как можно больше. – 2009-06-02 12:26:37

Смежные вопросы