找不到 Django 默认主页

Django Default HomePage Not Found

我有一个 Django 项目,并且工作正常,但不显示默认主页。

我知道,你必须添加一个 url 模式来显示 但是 这不完全是我问。

通常情况下,如果您创建一个 Django 项目,Django 会为您提供一个类似这样的默认网页

您可以通过在 'project.urls' 中为“/”添加 url 模式来更改它,就像这样:

urlpatterns = [
...
url(r'^$', wellcomeView, name='wellcomeView'),
...
]

但通常情况下,Django 必须在您不更改 url 模式或设置中的任何内容时显示此默认主页。

所以这是我的问题:我没有更改设置或 urls 中的任何内容,但是在迁移之后,它停止显示默认页面。 是什么原因造成的?

This is my scenario :

1- 我创建了一个 Django 2.2.7 项目 (一切正常)

2- 创建的应用程序、模型。 但现在浏览量

3- 迁移、创建数据库、测试模型。仍然没有任何视图,但显示默认主页。

4- 一次又一次地更改模型,并且每次都迁移。 (但仍然没有视图,也没有更改设置或 urls,仅在默认管理页面中查找。也仍然显示默认主页。)

5- 更改模型并迁移它们而不更改设置或 urls 中的任何内容。但是还是一切正常。

6- 迁移后,Django 突然停止提供默认主页。并抛出 404 错误:

7- 为什么? 我知道,这不是问题,我将创建一个视图并为使用此视图的“/”添加一个 url 模式,所以这不会有问题。 但是我只是想知道,为什么 Django 停止提供这个服务?

我进行了搜索,但找不到对此行为的任何好的解释。所以只要求学习 'Why' ,否则我知道如何在“/”地址显示视图。

您会在控制此行为的 source code 逻辑中找到解释:

if (not tried or (                  # empty URLconf
    request.path == '/' and
    len(tried) == 1 and             # default URLconf
    len(tried[0]) == 1 and
    getattr(tried[0][0], 'app_name', '') == getattr(tried[0][0], 'namespace', '') == 'admin'
)):
    return default_urlconf(request)

具体来说,"install successful" 视图仅在以下情况加载:

  • 您处于调试模式;
  • 您正在访问根 URL (/);
  • 您的 URL 配置为空,或者其中只有一个条目,并且该条目是默认的 /admin/ 条目,在您开始新项目时自动生成。

在您的情况下,您已经向 URL 配置(evrak/ 规则)添加了一些内容,因此不满足这些条件。