我正在使用Routes来完成所有的URL映射工作。这是我的应用程序中的典型路线:
map.routes('route', '/show/{title:[^/]+}', controller='generator', filter_=postprocess_title)
我经常要从{title}参数中删除一些字符(如空格和下划线)。目前,控制器中每个方法都有一个调用来执行此转换的函数。这不是非常方便,我希望Routes能够完成这项工作。有可能吗?
答案 0 :(得分:0)
我对Routes不熟悉,因此我不知道你是否可以使用Routes。
但也许您可以使用装饰器来装饰控制器方法,装饰器根据需要从参数中去除字符?
不确定这是否更方便。但对我来说,使用装饰器与在控制器方法内部执行相同操作具有不同的“感觉”。
例如:
@remove_spaces_from('title')
def my_controller(...):
...
如果您不熟悉装饰器,谷歌搜索“python decorators”将帮助您入门。要记住的关键点:当装饰器需要参数时,装饰器需要两级包装。