首页 > 解决方案 > 在 Django 项目中构建模板的最佳实践是什么?

问题描述

我知道有很多关于如何构建整个 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/目录下?如果模板文件夹下有几个目录,我会理解结构的逻辑。但是,我从未从 YouTube 或博客中的任何教程或博客中找到一个显示项目结构的示例,其中模板目录下有多个目录。相反,他们必须将其唯一的目录(在模板下)命名为与应用程序目录相同的目录。

如果您能解释其背后的原理并将我指向任何参考/链接,我将不胜感激。

提前致谢

标签: pythondjangotemplatesproject-structurehtml-templates

解决方案


存储模板的一种替代方法是将每个应用程序的模板存储在应用程序的模板目录中。

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

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

这样,您可以通过传递 'app1/templates1.html' 从视图中呈现模板


推荐阅读