2017-08-06 193 views
0

我想使這個網址模式工作:http://myapp.com/api/ipaddress/username其中IP地址是IPv4和用戶名是django用戶的帳戶。Django網址與IP地址

什麼是良好的正則表達式格式來做到這一點在url.py?

urlpatterns = [ 
    url(r'^$', view_api, name='api'), 
    url(r'^(?P<ip>[0-9.])/(?P<username>\w+)/$', view_ip_check_user, name='ip_check_user'), 
] 
+0

您缺少正則表達式的IP地址部分的重複字符。 –

+0

在構建正則表達式時嘗試使用regexr。 – melchoir55

回答

1

誰想要知道:

我想這和它的作品:

urlpatterns = [ 
    url(r'^$', view_api, name='api'), 
    url(r'^(?P<ip>(?:(?:0|1[\d]{0,2}|2(?:[0-4]\d?|5[0-5]?|[6-9])?|[3-9]\d?)\.){3}(?:0|1[\d]{0,2}|2(?:[0-4]\d?|5[0-5]?|[6-9])?|[3-9]\d?))/(?P<pseudo>\w+)/$', view_ip_check_user, name='ip_check_user'), 
] 

此正則表達式只接受有效的IPv4地址。因此,例如像172.16.1.256這樣的錯誤地址是Django不應該得到的。

所以它是完美的。