默认情况下,Django在哪里寻找模板?

我以为默认情况下,Django在myApp/templates/myApp/文件夹中查找模板,但在我的例子中,Django在myApp/templates/文件夹中查找模板.

我无法强制Django查看模板目录.以下是我的目录的 struct . Directory Structure

我参与了其他项目,但那些都运行得很好.我想知道Django 4.2.1中的文档是否有更改

以下是代码:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'school'
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'django_project.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        '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',
            ],
        },
    },
]

学校/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]

Django_project/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('school.urls')),
]

Views.py:

from django.shortcuts import render

def home(request):
    return render(request, 'home.html')

推荐答案

在我看来,它应该是

return render(request, 'school/home.html')

以低于app/templates/目录的app/子文件夹名称为前缀.

相关Django tutorial部分:

在您刚刚创建的模板目录中,创建另一个名为Polls的目录,并在其中创建一个名为index.html的文件.换句话说,您的模板应该是polls/templates/polls/index.html.由于APP_DIRECTORIES模板加载器如上所述的工作方式,you can refer to this template within Django as polls/index.html.

Django相关问答推荐

我无法在Django模板中使用Get_Foo_Display

覆盖保存以创建范围的多个对象()

在Python中向函数的查询列表添加条件

执行官/start.sh:没有这样的文件或目录

django re_path() 函数模式与包含该模式的 url 不匹配

将两个视图重定向到具有不同 url id Django 的一个模板的正确方法

lower() 在 None 上被调用

如何在 Django 模型中存储元组列表

Pymongo:搜索文档时忽略空输入值

来自 Django 应用程序的日志(log)消息未上传到 AWS CloudWatch

直接在模型类上使用 Django 管理器与静态方法

Django中视图的多个decorator :执行顺序

Django 向用户推送 HTTP 响应

Django 不调用模型清理方法

Django - 来自 QuerySet 的唯一列表

无效的块标签: static

如何测试 Django QuerySets 是否相等?

Django 在视图之间传递数据

django.urls.path中name参数的作用是什么?

在 Django 中使用 select_related Select 特定字段