找不到 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/
规则)添加了一些内容,因此不满足这些条件。
我有一个 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/
规则)添加了一些内容,因此不满足这些条件。