Django网址与IP地址

Django网址与IP地址

问题描述:

我想使这个网址模式工作: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

谁想要知道:

我想这和它的作品:

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不应该得到的。

所以它是完美的。