Regex Django url Dispatcher与错误的正则表达式匹配

Regex Django url Dispatcher与错误的正则表达式匹配,regex,django,Regex,Django,我创建了以下URL模式 urlpatterns=[ url(r'(?P<user_name>[a-zA-Z]+)/$', views.profile_view, kwargs=None, name='userprofile'), url(r'(?P<user_name>[a-zA-Z]+)/interests/$',views.interest,name='interests') ] urlpatterns=[ url(r'(?P[a-

我创建了以下URL模式

urlpatterns=[
     url(r'(?P<user_name>[a-zA-Z]+)/$', views.profile_view, 
     kwargs=None, name='userprofile'),
     url(r'(?P<user_name>[a-zA-Z]+)/interests/$',views.interest,name='interests')

]
urlpatterns=[
url(r'(?P[a-zA-Z]+)/$”,views.profile_view,
kwargs=None,name='userprofile'),
url(r'(?P[a-zA-Z]+)/interests/$',views.interest,name='interests')
]

但当我输入url localhost:8000/mainuser/interest/时,它会将其作为第一个url并打开profile\u视图。它显然与“/”匹配。请帮我解决这个问题。

您应该以行首字符
^
开始URL模式。因为没有包含此字符,所以第一个模式的正则表达式将匹配任何以1个或多个字符结尾并后跟正斜杠的URL

urlpatterns=[
     url(r'^(?P<user_name>[a-zA-Z]+)/$', views.profile_view, kwargs=None, name='userprofile'),
     url(r'^(?P<user_name>[a-zAZ]+)/interests/$',views.interest,name='interests'),
]
urlpatterns=[
url(r'^(?P[a-zA-Z]+)/$',views.profile_view,kwargs=None,name='userprofile'),
url(r'^(?P[a-zAZ]+)/interests/$',views.interest,name='interests'),
]

您应该以行首字符开始URL模式。因为没有包含此字符,所以第一个模式的正则表达式将匹配任何以1个或多个字符结尾并后跟正斜杠的URL

urlpatterns=[
     url(r'^(?P<user_name>[a-zA-Z]+)/$', views.profile_view, kwargs=None, name='userprofile'),
     url(r'^(?P<user_name>[a-zAZ]+)/interests/$',views.interest,name='interests'),
]
urlpatterns=[
url(r'^(?P[a-zA-Z]+)/$',views.profile_view,kwargs=None,name='userprofile'),
url(r'^(?P[a-zAZ]+)/interests/$',views.interest,name='interests'),
]

试试
localhost:8000/mainuser/interests/
(注意最后一个感兴趣的
s
)。@Alasdair它没有帮助。无论我在mainuser之后输入多少斜杠,它都与它们匹配,请尝试
localhost:8000/mainuser/interests/
(注意最后一个
s
的兴趣)..@Alasdair这没有帮助。无论我在主用户之后输入多少斜杠,它都与之匹配,我都配得上天堂