未找到 Django URL
Django URL not found
我的 urls.py 中有一个 url 如下:-
url(r'^api/profile/(?P<username>\w+)/$', views.ProfileDetail.as_view()),
我的用户名和我的emailid一样,即something@gmail.com
。当我浏览到 http://127.0.0.1:8000/api/profile/something@gmail.com/
时,它显示 404 Page not found
。
如果将用户名更改为普通单词(不像 emailid),url 可以正常工作。如何确保 url 将 emailids 作为用户名?
您的正则表达式不匹配电子邮件地址中的所有字符。 \w
匹配字符 a-z、A-Z、0-9 和下划线。电子邮件地址包括@和.,均不匹配。
您需要更改正则表达式以匹配有效的电子邮件地址。 Django 有一些内置的电子邮件地址正则表达式,但它们非常复杂。 https://github.com/django/django/blob/master/django/core/validators.py#151如果你想看看他们是什么样的。
就您的目的而言,类似以下内容可能就足够了:
url(r'^api/profile/(?P<username>[a-zA-Z0-9\+@\._-]+)/$', views.ProfileDetail.as_view()),
您必须编辑匹配 url 正则表达式:
url(r'^api/profile/(?P<username>[@\.\w]+)/$', views.ProfileDetail.as_view()),
我的 urls.py 中有一个 url 如下:-
url(r'^api/profile/(?P<username>\w+)/$', views.ProfileDetail.as_view()),
我的用户名和我的emailid一样,即something@gmail.com
。当我浏览到 http://127.0.0.1:8000/api/profile/something@gmail.com/
时,它显示 404 Page not found
。
如果将用户名更改为普通单词(不像 emailid),url 可以正常工作。如何确保 url 将 emailids 作为用户名?
您的正则表达式不匹配电子邮件地址中的所有字符。 \w
匹配字符 a-z、A-Z、0-9 和下划线。电子邮件地址包括@和.,均不匹配。
您需要更改正则表达式以匹配有效的电子邮件地址。 Django 有一些内置的电子邮件地址正则表达式,但它们非常复杂。 https://github.com/django/django/blob/master/django/core/validators.py#151如果你想看看他们是什么样的。
就您的目的而言,类似以下内容可能就足够了:
url(r'^api/profile/(?P<username>[a-zA-Z0-9\+@\._-]+)/$', views.ProfileDetail.as_view()),
您必须编辑匹配 url 正则表达式:
url(r'^api/profile/(?P<username>[@\.\w]+)/$', views.ProfileDetail.as_view()),