如何在Django URL模式中使用小数?


问题内容

我想在Django URL模式中使用带小数点的数字,但不确定是否确实可行(我不是正则表达式专家)。

这是我要用于网址的内容:

/item/value/0.01
/item/value/0.05

这些网址显示的商品价值为0.01或0.05美元。当然,我可以通过简单的方法将值传递为美分,因此它将是/ item / value /
1,但是我希望在我的视图中将参数作为十进制数据类型而不是整数(并且在某些时候,我可能只需要处理几分之一的费用)。是否可以使用Django
URL模式编写正则表达式来处理此问题?


问题答案:

可能像

urlpatterns = patterns('',
   (r'^item/value/(?P<value>\d+\.\d{2})/$', 'myapp.views.byvalue'),
   ... more urls
)

网址不应以斜杠开头。

在视图中,您可以具有以下功能:

def byvalue(request,value='0.99'):
    try:
        value = float(value)
    except:
        ...