django - 如何定义 django 模板文件夹?
问题描述
我想用这样的 html 模板构建我的项目:
├───app1
│ ├───...
│ └───...
├───app2
│ ├───...
│ └───...
├───project
│ ├───...
│ ├───templates
│ │ └───navbar.html
│ │ └───footer.html
│ │ └───sidebar.html
│ │ └───conbined.html
│ │ └───content_app1.html
│ │ └───content_app2.html
原因是我想将我的网站分成几个部分,如下所示。因此,在每个 app 文件夹中都没有 html 文件。navbar, footer and sidebar
始终显示,而可以content_appN.html
相应地激活。将conbined.html
它们全部结合在一起。
我的尝试(在settings.py
):
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
TEMPLATE_DIRS = (
os.path.join(PROJECT_ROOT, 'templates').replace('\\','/'),
)
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
)
在app1
: views.py
:
def app1_content(request):
return render(request, 'templates/combined.html')
实际上,我几乎尝试了我在网上找到的所有方法,但仍然不知道该怎么做。请不要因为这个想法而笑我建立这样的网站。谁能给我一些提示?
解决方案
根据我的理解,您的问题陈述是您希望将您的模板目录保留在特定文件夹中,并且根据我的说法,您的 manage.py 文件与您的项目文件夹位于同一级别,因此我正在向您解释解决方案只要。因此,要定义 django 模板文件夹,您需要在 settings.py 中进行设置:-
TEMPLATES_DIR = os.path.join(BASE_DIR, 'project','templates')
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [TEMPLATES_DIR,],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
所以,这是解释我所做的是参考基目录设置 TEMPLATES_DIR 变量,该变量将路径到保存 django 项目的 manage.py 的文件夹的路径现在我正在连接项目和模板目录只是为了导航您为项目中的模板保留的文件夹结构。
我希望你觉得这很有帮助。如果您还有任何疑问,我也很乐意回答。
快乐编码。:-)
推荐阅读
- python - 即使在 git-bash.exe 上运行良好,“conda activate”在 bash.exe 上也会失败
- sql - 通过将表列映射到其他表的列值来重命名表列
- java - 在 fileinputstream 输入中分离文件并将数据插入到 oracle 表中
- marklogic - 从表中提取数据 (MarkLogic)
- angular - 在一个数组中合并/组合/加入两个 Observable 数组,并在 Ionic 3 应用程序中一起使用 ngFor 显示它
- flask - 通过前端将用户指定的本地文件上传到 Google Cloud Storage
- google-sheets - 有没有办法在制作特定例外时计算工作表上的所有单词?
- android - 电池会话的含义?
- arrays - 数组没有填充正确的数据
- javascript - 使用 swig 创建 C++ 到 javascript 的包装器时生成错误