1

我正在使用 Routes 来完成所有 URL 映射工作。这是我的应用程序中的典型路线:

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

我经常需要从 {title} 参数中删除一些字符(如空格和下划线)。目前,控制器中的每个方法调用一个执行此转换的函数。这不是很方便,我希望 Routes 来完成这项工作。可能吗?

4

1 回答 1

0

我不熟悉 Routes,因此我不知道您所追求的是否可以通过 Routes 实现。

但是也许你可以用一个装饰器来装饰你的控制器方法,根据需要从参数中去除字符?

不确定这是否会更方便。但对我来说,使用装饰器与在控制器方法中内联做同样的事情有不同的“感觉”。

例如:


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

如果您不熟悉装饰器,可以在 Google 上搜索“python 装饰器”来帮助您入门。要记住的关键点:当装饰器需要参数时,您需要在装饰器中进行两层包装。

于 2009-06-02T10:40:10.263 回答