Django正则表达式模式匹配
我有以下几种模式:Django正则表达式模式匹配,django,django-urls,Django,Django Urls,我有以下几种模式: url(r'^api/daily-means/$', views.daily_means.as_view(), name='daily_means'), url(r'^api/daily-means/sites/(?P<url>\w+)/$', views.site_daily_means.as_view()), url(r'^api/daily-means/pollutant/(?P<poll>\w+)$/', views.pollutant_dai
url(r'^api/daily-means/$', views.daily_means.as_view(), name='daily_means'),
url(r'^api/daily-means/sites/(?P<url>\w+)/$', views.site_daily_means.as_view()),
url(r'^api/daily-means/pollutant/(?P<poll>\w+)$/', views.pollutant_daily_means.as_view()),
url(r'^api/daily-means/$,views.daily\u-means.as\u-view(),name='daily\u-means'),
url(r'^api/每日平均值/站点/(?P\w+/$),视图。站点的每日平均值。as\U视图(),
url(r'^api/每日平均值/污染物/(?P\w+)$/,views.pollutant\u daily\u means.as\u view()),
前两个很好。最后一个与第二个的工作原理相同,但它不是。我对regex和urlpatterns不是很在行,但我认为第二个url模式会阻止最后一个运行。其他人能看出原因吗?Django将在未提供的情况下附加结束斜杠。在正则表达式中,匹配时不带结束斜杠。
url(r'^api/每日平均值/污染物/(?P\w+)$/,views.pollutant\u daily\u means.as\u view()),
以下URL模式应该可以工作(在URL匹配中包含结束斜杠之后)
url(r'^api/daily-means/pollutant/(?p\w+)/$,views.pollutant\u-daily\u-means.as\u-view()),
能否添加您尝试过的第二和第三种模式的测试url?对不起,您所说的测试url是什么意思?是的。您已经测试过的URL。抱歉,我知道了。例如:domain.com/api/daily-means/sites/cardiff-2nd-url,工作正常。然后,对于第三个domain.com/api/daily-means/pollutant/ozone不起作用,您的第三个正则表达式模式(?P\w+)$/
应该是(?P\w+)/$
,谢谢您的帮助。我不知道Django会附加结束斜杠,所以这对学习很有用。