我知道关于如何构建整个Django项目的最佳实践有很多问题,但是我找不到关于如何为Django项目构建模板的具体解释。
很明显,我刚刚开始学习Python / Django,我很困惑为什么我找到的大多数教程/示例,模板目录下的目录名总是与应用程序目录名相同。
例如:
gazette/
__init__.py
models.py
views.py
static/
...
templates/
gazette/
__base.html
__l_single_col.html
__l_right_sidebar.html
__l_left_sidebar.html
_article_full.html
_article_summary.html
_author_list.html
_author_name.html
_category_list.html
_navigation.html
_tag_list.html
article_detail.html
article_list.html
author_list.html
category_list.html
tag_list.html
这实际上来自博客:https://oncampus.oberlin.edu/webteam/2012/09/architecture-django-templates
在上面的应用程序结构中,应用程序 gazette / 下具有 templates / 目录。反过来,在 templates / 下,有一个名为 gazette / 的目录,该目录与包含该目录的应用程序目录相同。在此文件夹下是实际的html模板文件。
问题::为什么我们不能直接将所有html模板文件放在 templates / 目录下? 如果在template文件夹下有几个目录,我会理解结构的逻辑。但是,我从YouTube或博客中的任何教程中都找不到一个示例,该示例显示了项目结构,其中模板目录下有多个目录。相反,他们必须将其唯一的目录(在模板下)命名为与应用程序目录相同的名称。
如果您能解释其背后的原理并将我引向任何参考/链接,我将不胜感激。
预先感谢
答案 0 :(得分:0)
一天结束时您可以选择Django项目模板,是的,是的,可以使用已知的模板来优化大多数项目的工作流程,但是最终每个项目都是不同的,例如,这是我的模板。当我为希望我遵循准则的人工作时使用
Project
app1
app2
..etc
static
app1
images
css
js
app2
...etc
templates
app1
file.html
...etc
app2
..etc
log_files
app1_info.log
app2_info.log
app1_erros.log
..etc
这是因为Django哲学基于分离,Django围绕鼓励模块化而构建
当我从事个人项目时,我喜欢混合所有内容,因为即使将不同的应用程序用于不同的事情,我在大多数情况下仍将具有相同的样式和模板。
答案 1 :(得分:0)
存储模板的另一种方法是将每个应用程序的模板存储在应用程序的模板目录中。
所以项目结构看起来像这样
Project
app1
templates
app1
template1.html
template2.html
app2
templates
app2
template1.html
这样,您可以通过传递'app1 / templates1.html'来从视图中渲染模板