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'),
]
答
谁想要知道:
我想这和它的作品:
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不应该得到的。
所以它是完美的。
您缺少正则表达式的IP地址部分的重复字符。 –
在构建正则表达式时尝试使用regexr。 – melchoir55