TemplateDoesNotExist错误(Python 3.6.1、Django 1.11.1、PyCharm)

TemplateDoesNotExist错误(Python 3.6.1、Django 1.11.1、PyCharm),python,django,Python,Django,我试图使用render显示在PyCharm上编辑的HTML,但当我输入地址:127.0.0.1:8000/index/,出现以下TemplateDoesNotExist异常: TemplateDoesNotExister位于/索引/ index.html 请求方法:获取 请求URL: Django版本:1.11.1 异常类型:TemplateDoesNotExist 异常值:index.html 异常位置:get_模板第25行中的D:\python3.6.1\lib\site packages\

我试图使用render显示在PyCharm上编辑的HTML,但当我输入地址:
127.0.0.1:8000/index/
,出现以下
TemplateDoesNotExist
异常:

TemplateDoesNotExister位于/索引/ index.html 请求方法:获取 请求URL: Django版本:1.11.1 异常类型:TemplateDoesNotExist 异常值:index.html 异常位置:get_模板第25行中的D:\python3.6.1\lib\site packages\django\template\loader.py Python可执行文件:D:\python3.6.1\Python.exe Python版本:3.6.1 Python路径:
['C:\Users\Administrator\guest', 'D:\python3.6.1\python36.zip', 'D:\python3.6.1\DLLs', 'D:\python3.6.1\lib', 'D:\python3.6.1', 'D:\python3.6.1\lib\site包'] 服务器时间:2017年6月2日星期五03:30:58+0000`TemplateDoesNotextister at/index/

settings.py:

ROOT_URLCONF = 'guest.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',
        ],
    },
},
]
views.py:

from django.shortcuts import render

# Create your views here.
def index(request):
return render(request,"index.html")
PyCharm截图:

我尝试了StackOverflow上提供的一些方法,但它们不起作用。此异常是否由错误的目录引起?我如何处理这种情况

看看这个:

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

'DIRS': [],
您需要告诉Django在哪里查找模板。如果主项目根目录中有templates文件夹。然后,添加

os.path.join(BASE_DIR, 'templates')
这假设您的项目具有以下结构:

 root
    app1
       ...
    templates/
        what we're referencing with os.path.join(BASE_DIR, "templates")
        ....
    static/ 
         what we're referencing with STATIC_ROOT = os.path.join(BASE_DIR, "static")
    ...
如果您在应用程序中放置模板。有两件事

项目中的应用程序将需要模板文件夹的此结构

  app name (folder)
     templates (folder)
         app name (folder)
             (template files) e.g. - "base.html"
您需要添加这一行

 os.path.join(BASE_DIR, APP NAME, "templates")
附录:毫无疑问,您也会遇到这个问题。。。那么,让我们继续报道它

如果要扩展/包括应用程序中的模板(不在基本模板文件夹中),则需要参考它们的位置:

示例:我在“myapp/templates/myapp/template.html”中有一个模板,我想包含它


然后,我会做
{%include“myapp/template.html”%}
或者如果扩展
{%extend“myapp/template.html”%}
。如果它们在基本模板文件夹中,那么您可以直接将它们引用为
“template.html”

我也有同样的问题。这主要是因为您没有在“settings.py”文件中安装应用程序

只需在settings.py文件中执行此操作,错误就会消失

INSTALLED_APPS = [
  '<app name>.apps.<app name>Config',
]
已安装的应用程序=[
“.apps.Config”,
]

在粘贴错误目录导致的“应用程序名称”的地方。。。你没有任何目录:
'dirs':[]
你做了
collectstatics
了吗?你在
settings.py
文件中设置了静态路径了吗?你把所有的模板都放在static/templates文件夹中了吗?@piyuss.Wanare你的评论每一部分都是错误的。为什么collectstatic与模板有任何关系?为什么模板会在静态目录中?非常感谢您耐心的解释,我的模板(文件夹)设置在我的应用程序“sign”下,我尝试添加应用程序名称“sign”:非常感谢您耐心的解释,我的模板(文件夹)设置在我的应用程序“sign”下,我尝试添加应用程序名称“sign”:“DIRS”:[os.path.join(BASE_DIR,sign,“templates”)],但出现另一个异常,NameError,这意味着未定义名称“sign”。很抱歉,我对python知之甚少,但我真的很想了解一下我现在面临的问题。它不是一个变量,而是一个字符串。。。使用引号。听起来并不刺耳,但如果你不知道这一点,就不应该尝试使用Django。这是初级Python,Django是高级Python。至少通过一些教程,它会帮你省去一些头疼的事。哇!!!它成功了!非常感谢,是的,我在看一本我最喜欢的测试工程师的教科书,当我看这本书时,我遇到了这样的问题…啊哈,再次感谢!我可以重复一下我犯错误的原因吗?您的意思是我的应用程序名称的形式是字符串,因此我需要添加“”>