首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django项目中构造模板的最佳实践是什么?

问在Django项目中构造模板的最佳实践是什么?
EN

Stack Overflow用户
提问于 2018-12-13 02:19:53
回答 2查看 2.2K关注 0票数 2

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

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

例如:

代码语言:javascript
复制
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

在上面的应用程序结构中,应用程序公报/在它下面有模板/目录。反过来,在templates/下,有一个名为/的目录,它与包含它的应用程序目录的名称相同。该文件夹下面是实际的html模板文件。

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

如果您能解释其背后的原则,并指导我的任何参考/链接,我将非常感谢。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2018-12-13 08:57:48

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

所以项目结构看起来会是这样的

代码语言:javascript
复制
 Project  
     app1  
         templates  
             app1  
                 template1.html  
                 template2.html  
     app2 
         templates  
             app2  
                 template1.html

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

票数 2
EN

Stack Overflow用户

发布于 2018-12-13 02:35:19

最终你的Django项目模板是个人的选择,是的,有一些已知的模板可以为大多数项目优化您的工作流程,但是最终每个项目都是不同的,例如,当我为希望我遵循指导方针的人工作时,我使用了这个模板。

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53754158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档