Django Flatpages空路径与任何这些都不匹配

时间:2020-03-09 11:16:51

标签: django

在管理页面上,我将Django平面页面的URL设置为“ /”,预期将其显示为http://127.0.0.1:8000/上的主页。这样做时遇到错误:

Request Method:     GET
Request URL:    http://127.0.0.1:8000/
Using the URLconf defined in core.urls, Django tried these URL patterns, in this order:
    admin/
    <path:url>
The empty path didn't match any of these.

但是,如果我以双斜杠转到http://127.0.0.1:8000//,则主页将正确显示。我唯一的urls.py文件如下所示:

from django.contrib import admin
from django.urls import include, path
from django.contrib.flatpages import views

urlpatterns = [
    path('admin/', admin.site.urls),
]

urlpatterns += [
    path('<path:url>', views.flatpage),
]

我完全从the official guide那里获取了所有代码。如何在http://127.0.0.1:8000/上显示django平面首页?

1 个答案:

答案 0 :(得分:0)

除了django.urls.path方法外,Django还提供了django.urls.re_path方法。 path方法旨在对精确字符串进行匹配,而re_path方法旨在基于正则表达式对模式字符串进行匹配。就我而言,以这种方式解决就足够了:

urlpatterns += [
    re_path(r'^(?P<url>.*)$', views.flatpage),
]

结果,我们在http://127.0.0.1:8000/得到了正确的请求处理。可以在link中找到有关使用path,re_path方法的更多详细信息。