django urls中uuid十六进制值的正则表达式

时间:2017-05-22 12:04:53

标签: python regex django django-urls uuid

我正在生成一个uuid值并希望从django中的url接收它,但是我正在编写的正则表达式无效并且告诉我找不到页面

import uuid
id = uuid.uuid4().hex
print id
be00e546822945bbb193b4ed80149c35

urls.py

urlpatterns = [
       url(r'^users/(?P<user_id>[0-9a-f]{32}\Z)/$', UserDetails.as_view(), name = 'users_detail'),
]

结果:

"GET /users/be00e546822945bbb193b4ed80149c35/ HTTP/1.1" 404 3302

那么urls.py中的uuid十六进制值的正确正则表是什么?

2 个答案:

答案 0 :(得分:2)

如果你想真的检查你有UUID,试试这个:

[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}

我刚才在SO上发现了它,并用了一段时间来检查数据是否真的是regexp。没有直接使用Django URLS,但我认为应该没问题。

答案 1 :(得分:0)

urlpatterns = [
   url(r'^users/(?P<user_id>[^/]+)/$', UserDetails.as_view(), name = 'users_detail'),
]
相关问题