如何在Django URL模式中使用十进制数?

2024-05-14 17:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在Django URL模式中使用一个带小数点的数字,但我不确定它是否真的可能(我不是regex专家)。

以下是我想用于URL的内容:

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

这些url将显示值为$0.01或$0.05的项。当然,我可以采用简单的方法,以美分为单位传递值,所以它应该是/item/value/1,但我希望在我的视图中,将参数作为十进制数据类型而不是整数接收(在某些情况下,我可能必须处理美分的小数)。可以用Django URL模式编写一个regex来处理这个问题吗?


Tags: django方法视图url内容参数value模式
3条回答

我不知道Django的具体情况,但这应该与URL匹配:

r"^/item/value/(\d+\.\d+)$"

如果接受的值只有$0.01或$0.05,则可以如下指定harto模式:

r"^/item/value/(\d\.\d{2})$"

可能有点像

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

url不应以斜线开头。

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

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

相关问题 更多 >

    热门问题