Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django项目中构建模板的最佳实践是什么?_Python_Django_Templates_Project Structure_Html Templates - Fatal编程技术网

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

Python 在Django项目中构建模板的最佳实践是什么?,python,django,templates,project-structure,html-templates,Python,Django,Templates,Project Structure,Html Templates,我知道关于如何构造整个Django项目的最佳实践有很多问题,但我找不到关于如何构造Django项目模板的具体解释 显然,我刚刚开始学习Python/Django,我很困惑为什么我找到的大多数教程/示例中,templates目录下的目录名总是与应用程序目录名相同 例如: gazette/ __init__.py models.py views.py static/ ... templates/ gazette/

我知道关于如何构造整个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
这实际上来自一个博客:

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

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

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


提前感谢

一天结束时,您的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是围绕鼓励模块化而构建的


当我处理个人项目时,我喜欢混合所有内容,因为即使使用不同的应用程序处理不同的事情,我仍然会在大多数应用程序中使用相同的样式和相同的模板。

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

所以项目结构应该是这样的

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

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

对于具有多个应用程序的复杂项目,应该是这样。很高兴知道我们可以自由地将模板移动到任何地方。如果是这样的话,我更喜欢通过快捷方式标识符访问模板路径,所以我只需要修改它,而不是修改访问模板的整个代码。除了向配置文件添加模板路径之外,还有其他方法吗?如果我正在与图形设计师合作,并且我的项目中有100个应用程序,那么浏览每个应用程序的所有目录将是一件痛苦的事情。