【问题标题】:Optional number of wildcards in URL patterns in DjangoDjango 中 URL 模式中的可选通配符数量
【发布时间】: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


    【解决方案1】:

    这不是你想要的,但你可以使用

    (r'^sum/(?P<allargs>[/0-9]+)$', 'views.sum')
    

    然后

    def sum(request, allargs):
        args = map( int, allargs.split('/') )
        # Compute sum
    

    【讨论】:

    • 这可以扩展为处理其他数据类型。有点。 [/0-9]+ 可以更精细,map( int, ... ) 也必须更改。但是转换 map 函数可能会引发异常。
    【解决方案2】:

    除非您绝对要使用“/1/2/3”形式,否则您宁愿使用查询字符串“/sum?1&2&3”。实现起来会简单得多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 2011-11-03
      • 1970-01-01
      • 2022-08-14
      • 2021-08-24
      • 2012-10-28
      • 2013-12-10
      • 2019-01-15
      相关资源
      最近更新 更多