我正在生成一个uuid值,并希望从django中的url接收它,但我写的正则表达式不起作用并告诉我页面未找到
import uuid
id = uuid.uuid4().hex
print id
be00e546822945bbb193b4ed80149c35
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十六进制值的正确正则表达式是什么?
如果你想真正检查你有UUID,试试这个:
[a-f0-9]{8}-?[a-f0-9]{4}-?4[a-f0-9]{3}-?[89ab][a-f0-9]{3}-?[a-f0-9]{12}
我不久前在SO上发现了它并使用它一段时间来检查数据是否真的是正则表达式。没有直接使用它Django URLS,但我认为应该没问题。
urlpatterns = [
url(r'^users/(?P<user_id>[^/]+)/$', UserDetails.as_view(), name = 'users_detail'),
]