Django URL无法找到带有HTML文件的模板

时间:2019-08-18 15:36:00

标签: python django django-views django-urls

我正在尝试在Django ToDo App中创建视图。但是有一个TemplateDoesNotExist错误。我一直在寻找解决方法,但仍然无法正常工作。

这是我在主文件夹中的urls.py

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

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

然后我的应用程序文件夹为“ todoapp_api” 还有我的urls.py

from django.urls import path
from . import views


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

我的views.py看起来像这样

from django.shortcuts import render
from django.http import HttpResponse


def app(request):
    return render(request, 'todoapp_api/app.html')

1 个答案:

答案 0 :(得分:0)

您有两个选择: 目录结构1: todoapp_ap / templates / todoapp_api / app.html

或遵循目录结构2: 1.在您的根目录中创建一个全局模板文件夹。 2.在其中创建todoapp_api文件夹,然后放置所需的所有模板文件。

在您的settings.py中,替换为

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',
            ],
        },
    },
]

通过这个:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates')
        ],
        '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',
            ],
        },
    },
]