为什么我得到了模板不存在的错误,尽管看起来Django在文件夹结构方面提供了灵活性



我在这里读了几篇文章,人们讨论了他们喜欢的目录结构,以保存Django项目的各种文件。但是,如果我把模板放在内部my_project文件夹中,而不是包含manage.py文件的外部my_probject文件夹中,我会得到一个文件不存在的错误。是否有一些配置文件指定了模板(和其他文件)的默认位置?如果我把模板放在内部(子)文件夹中,你能帮我更改命令吗?我刚开始我的第一个Django项目,非常感谢您的帮助。

好的,django在默认位置查找模板。我建议你把你的html文件放在那里(作为一个初学者)。

默认位置为:

- my_site_project/
-- templates/
--- base.html
--- navbar.html
--- footer.html
-- my_app1/
--- templates/
---- my_app1/
----- index_app1.html
----- about_app1.html
-- manage.py

若您在项目中放入一个普通的templates/文件夹,和manage.py文件夹相同,那个么这些模板就会被拉取。

如果你想要特定于应用程序的模板,惯例是在你的应用程序中放一个文件夹,也称为templates/。如果将index.html放在应用程序模板中,将index.html放在通用templates/中,这可能会导致重叠。因此,您需要为应用程序的模板命名名称空间。创建应用程序;在里面创建一个名为templates/的文件夹;在刚刚创建的templates/文件夹中,您创建了另一个名为my_app1的文件夹;在该文件夹中创建.html文件。

请阅读此处的教程。这可能比我的胡言乱语更容易理解。这是django的官方教程。

其中一部分:

首先,在您的polls目录中创建一个名为templates的目录。Django将在那里寻找模板。

项目的TEMPLATES设置描述了Django将如何加载和渲染模板。默认设置文件配置其APP_DIRS选项设置为True的DjanoTemplates后端。通过约定DjanoTemplates在中查找"templates"子目录每个INSTALLED_APPS。

您可以通过DIRSsettings.py中指定django查找模板的位置。虽然作为一个初学者,我不知道你为什么不应该首先遵守惯例。