django - Django 基本模板位置
问题描述
我正在使用 Django 2.0.7 创建一个网站。我需要使用一个基本模板,它不在所有应用程序的权限范围内,但可以被项目中我的其他应用程序中的模板继承和使用。
我已经适当地编辑了我的 settings.py 文件(根据文档),但是当我转到我网站的根(即主页)页面时,我得到一个空白页面 - 谁能解释为什么?
我有以下目录结构
myproj
----manage.py
----app1
----templates/
base.html
index.html
----static/
----myproj
__initi__.py
wsgi.py
settings.py
urls.py
views.py # <- I added this
我的 settings.ini 文件的相关部分如下所示:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['{0}/templates/'.format(BASE_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',
],
},
},
]
视图.py:
from django.http import HttpResponse
def index(request):
return HttpResponse()
为什么 django 找不到我的 index.html ?
解决方案
在你的设置中使用'DIRS': [os.path.join(BASE_DIR, "templates")]
,你的视图应该返回一个知道要渲染什么模板的对象,比如这个:
from django.shortcuts import render
def index(request):
return render(request, 'index.html')
推荐阅读
- javascript - 写入导入的 Javascript 文件
- google-cloud-storage - 尝试更改对象的元数据时收到 403 响应
- python - 如果孩子或工人在多处理中出现异常,我该如何停止父母?
- c - 编译器警告:负值左移
- java - 线程不应该唤醒
- c# - 如何在 Core EF Code First 中将覆盖字段映射到数据库?
- windows - Tensorflow 2 无法在 Windows 10 上使用 bazel 进行编译 - 包名错误
- jquery - Jquery 函数和 ajax 在删除时重新加载
- symfony - Symfony 表单生成器。数组中的多选
- javascript - 为什么 app redux 在这个 reducer 中有错误?