Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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_Django Templates - Fatal编程技术网

Python 在django项目中组织模板

Python 在django项目中组织模板,python,django,django-templates,Python,Django,Django Templates,我正在尝试使用“特定于应用程序”的方法来组织各种django应用程序。例如: - app2 - __init__.py - urls.py - views.py - templates/ - app2 - __init__.py - urls.py - views.py - templates/ - manage.py - settings.py - urls.py 不过,我遇到的一个问题是,将所有内容继承的基础模板放在哪里?例如

我正在尝试使用“特定于应用程序”的方法来组织各种django应用程序。例如:

- app2
    - __init__.py
    - urls.py
    - views.py
    - templates/
- app2
    - __init__.py
    - urls.py
    - views.py
    - templates/
- manage.py
- settings.py
- urls.py

不过,我遇到的一个问题是,将所有内容继承的基础模板放在哪里?例如,在我所有模板的顶部,我有
{%includes“base.html”%}
,但如果我在做上述工作,我不知道如何以合乎逻辑的方式做到这一点。

首先,你希望每个应用程序模板都有“templates/appXXX/”(至少如果你想使用“appXXX/template.html”)


第二点:正如您刚刚发现的,并非所有模板(以及并非所有代码FWIW)都与某个给定的应用程序严格相关。在某一点上,您需要将应用程序集成在一起以构建完整的网站/网络应用程序,而模板(特别是基本模板)是项目“集成”层的一部分。IOW:只需在项目的根目录中创建一个
templates
目录,然后将基础模板放在那里。这正是每个人的期望

这类问题有时被封闭为主要的意见基础;无论如何,我会给我的两分钱,因为我认为这是一个有效的问题

我使用的结构如下(成功应用于一些Django项目,每个项目中的应用程序少于10个):

在第一幅图中,您可以看到,对于这个项目,我用前缀
app_uuz
启动了每个应用程序名称,但这只是一个内部约定。注意:文件夹
.venv
包含Python虚拟环境,该文件夹不受版本控制(其他文件夹是
git
repo的一部分)

在第二幅图中,您可以看到我有一个文件夹
project\u config
,其中包含设置、基本URL、中间件、路由器和其他内容。注意:Django文档通常将此文件夹命名为与项目相同的名称(在本例中为
tb\u system\u 01
),但我发现名称
project\u config
对我的用例更有意义)

然后我通常使用文件夹
project\u-config/static
project\u-config/templates
来存储应用程序所共有的所有内容。这里还有我的基本模板,这将是我对您提出的特定问题的答案。Django文档有时建议使用名为
templates
的顶级文件夹,但对于我的用例,我发现将该文件夹放在
project\u config/
中更有条理


您的
设置.py
是否真的与
管理.py
位于同一目录中?这是一个不寻常的项目布局。我不确定什么是“最佳实践”,但我通常将基本模板保存在项目级别的
templates
目录中。感谢您的全面响应,这真的很有帮助。然后,您将(1)凭据文件(如DB info等)和(2)manage.py文件放在何处?
manage.py
位于项目根文件夹(第二张图像的底部);凭证通常位于我称之为
local\u files
的文件夹中,该文件夹的内容不是git repo的一部分,而是手动复制到其中。