在Django项目中构建模板的最佳实践是什么



我知道关于如何构建整个Django项目的最佳实践有很多问题,但我找不到关于如何构建Django工程模板的具体解释。

显然,我刚刚开始学习Python/Django,我很困惑为什么我发现的大多数教程/示例中,templates目录下的目录名总是与应用程序目录名相同。

例如:

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

在上面的应用程序结构中,应用程序gazettee/下有templates/目录。反过来,在templates/azettee/的目录,它与包含它的应用程序目录同名。在这个文件夹下是实际的html模板文件。

问题:为什么我们不能直接将所有html模板文件放在templates/目录下?如果templates文件夹下有几个目录,我会理解结构的逻辑。然而,我从未在YouTube或博客上的任何教程中找到任何一个例子来显示项目结构,其中templates目录下有几个目录。相反,他们必须将其唯一的目录(在模板下(命名为和应用程序目录相同的目录。

如果你能解释它背后的原理,并指引我到任何参考/链接,我将不胜感激。

提前感谢

存储模板的一种选择是将每个应用程序的模板存储在应用程序的templates目录中。

所以项目结构看起来像这个

Project  
app1  
templates  
app1  
template1.html  
template2.html  
app2 
templates  
app2  
template1.html

通过这种方式,您可以通过传递"app1/templates1.html"从视图中呈现模板

你的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是围绕着鼓励模块化构建的

当我从事个人项目时,我喜欢把所有的东西都混合在一起,因为即使使用不同的应用程序做不同的事情,我仍然会在大多数应用程序中使用相同的风格和模板。

相关内容

最新更新