在Python路由中预处理路由参数

时间:2009-06-02 07:17:33

标签: python parameters routes

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

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

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

1 个答案:

答案 0 :(得分:0)

我对Routes不熟悉,因此我不知道你是否可以使用Routes。

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

不确定这是否更方便。但对我来说,使用装饰器与在控制器方法内部执行相同操作具有不同的“感觉”。

例如:


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

如果您不熟悉装饰器,谷歌搜索“python decorators”将帮助您入门。要记住的关键点:当装饰器需要参数时,装饰器需要两级包装。