Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django正则表达式模式匹配_Django_Django Urls - Fatal编程技术网

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会附加结束斜杠,所以这对学习很有用。