【发布时间】:2012-02-02 15:59:23
【问题描述】:
#views.py
def sum(*args):
return reduce((lambda x, y: int(x)+int(y)), args)
是否可以编写一种 URL 模式来统一处理 /sum/1/2(结果 = 3)、/sum/1/2/3(结果 = 6)等请求?
【问题讨论】:
标签: python django url-pattern
#views.py
def sum(*args):
return reduce((lambda x, y: int(x)+int(y)), args)
是否可以编写一种 URL 模式来统一处理 /sum/1/2(结果 = 3)、/sum/1/2/3(结果 = 6)等请求?
【问题讨论】:
标签: python django url-pattern
这不是你想要的,但你可以使用
(r'^sum/(?P<allargs>[/0-9]+)$', 'views.sum')
然后
def sum(request, allargs):
args = map( int, allargs.split('/') )
# Compute sum
【讨论】:
[/0-9]+ 可以更精细,map( int, ... ) 也必须更改。但是转换 map 函数可能会引发异常。
除非您绝对要使用“/1/2/3”形式,否则您宁愿使用查询字符串“/sum?1&2&3”。实现起来会简单得多。
【讨论】: