django 默认的root 主页是如何渲染的?

How is django's default root homepage rendered?

这是一种想知道的痒。这里有很多问题询问如何替换默认的 Django 主页 (e.g. )。我明白那个问题。我很想知道在创建新项目时(即在调试模式下)默认页面是如何呈现的。尽管我的问题不像知道如何替换默认主页那样直接实用,但我觉得如果我弄明白了,我可能会更好地理解 Django 的工作原理。

我希望它在默认的 urls.py 文件中,但 urls.py 的 urlpatterns 中默认的唯一条目是 path('admin/', admin.site.urls)。我第一个天真的期望是 urlpatterns 中的一个条目,您可以将其删除或注释掉。由于除了 admin/ 之外什么都没有,我猜还有一些其他内置应用程序或中间件指定了默认主页,但我不知道去哪里找。

到目前为止,这是我对此的理解进展:

到目前为止 Django 一直非常简单,但这似乎很神奇,所以我想弄清楚幕后发生了什么。

感谢您的帮助!

相关代码为here。 Django 基本上有一种特殊情况,当在 URL 配置中找不到匹配的 URL 时,请求的路径是 /,并且 URL 中只有一个条目配置。

在这种情况下,它会加载一个 default_urlconf,其中 renders that welcome template 代替常规的 404 响应。

这是从 technical_404_response 函数内部调用的,is only calledDEBUG=True.