首页 > 解决方案 > Django 路由 - 空路径与这些中的任何一个都不匹配

问题描述

非常基本的问题,我很惊讶我找不到答案。我刚刚开始研究 django 并进行了开箱即用的安装。创建了一个项目并创建了一个应用程序。urls.py 的默认内容很简单:

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

如果我打开 django 站点主页,我会得到带有火箭图片的内容。但是,就像我说的那样,我在项目中创建了另一个应用程序,比如说“ bboard ”。我在bboard/views.py中创建了一个简单的“hello world”函数

def index(request):
    return HttpResponse('Hello world')

为了使其能够通过浏览器访问,我通过以下方式修改了原始urls.py文件:

from bboard.views import index
urlpatterns = [
    path('admin/', admin.site.urls),
    path('bboard/', index),
]

这样我可以访问localhost:port/adminlocalhost:port/bboard URL,但是如果我现在尝试使用localhost:port打开主页,我会收到Page not found错误。

使用 samplesite.urls 中定义的 URLconf,Django 尝试了这些 URL 模式,顺序如下: admin/ bboard/ 空路径与其中任何一个都不匹配。

如果我注释掉 urlpatterns 列表中的第二项,一切正常。那么为什么额外的模式会影响这一点以及需要做些什么来解决它呢?

标签: djangorouting

解决方案


您需要在根目录中添加一个空 urlurls.py

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

推荐阅读