模板不存在“django 2.0”

Posted

技术标签:

【中文标题】模板不存在“django 2.0”【英文标题】:template doesnt exist "django 2.0" 【发布时间】:2018-05-26 06:06:11 【问题描述】:

请任何人帮助我,我无法弄清楚在 djano 2.0 中渲染模板时出现的错误 我创建了一个应用程序,并在views.py部分中添加了manange.py的所有代码行导入的url(直接在视图中)试图运行服务器(python views.py runserver)

这是来自views.py的完整代码

import os
import sys
from django.conf import settings

DEBUG = os.environ.get('DEBUG', 'on') == 'on'
SECRET_KEY = os.environ.get('SECRET_KEY', os.urandom(32))
ALLOWED_HOSTS = os.environ.get( 'localhost','127.0.0.1').split(',')
BASE_DIR = os.path.dirname(__file__)

settings.configure(
DEBUG=DEBUG,
SECRET_KEY=SECRET_KEY,
ALLOWED_HOSTS=ALLOWED_HOSTS,

ROOT_URLCONF=__name__,
MIDDLEWARE_CLASSES=(
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
),
)
INSTALLED_APPS=(
'django.contrib.staticfiles',
'django.contrib.contenttypes',
'django.contrib.auth',
),
TEMPLATE_DIRS=(
os.path.join(BASE_DIR, 'templates'),
),
STATICFILES_DIRS=(
os.path.join(BASE_DIR, 'static'),
),
STATIC_URL='/static/',

#############################views & urls###############################s

from django import forms
from django.urls import path,include
from django.core.cache import cache
from django.core.wsgi import get_wsgi_application
from django.http import HttpResponse, HttpResponseBadRequest
from django.shortcuts import render
from django.views.decorators.http import etag

# Create your views here.

application = get_wsgi_application()

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

urlpatterns=[


path('',home,name='home'),

]
######################################   #############################################
if __name__ == "__main__":
    from django.core.management import execute_from_command_line
    execute_from_command_line(sys.argv)

我尝试将模板放置在存在视图的同一目录中以及应用程序文件夹之外

我应该得到一个基本模板,如轻量级 django 一书中所述

改为:

TemplateDoesNotExist at /

index.html

Request Method:     GET
Request URL:    http://127.0.0.1:8000/
Django Version:     2.0
Exception Type:     TemplateDoesNotExist
Exception Value:    

index.html

Exception Location:     C:\Users\madhumani\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\template\loader.py in get_template, line 19
Python Executable:  C:\Users\madhumani\AppData\Local\Programs\Python\Python36-32\python.exe
Python Version:     3.6.2
Python Path:    

['D:\\python\\tempo python\\dajngo rest api\\api\\pi',
 'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\python36.zip',
 'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs',
 'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\lib',
 'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32',
 'C:\\Users\\madhumani\\AppData\\Roaming\\Python\\Python36\\site-packages',
 'C:\\Users\\madhumani\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages']

【问题讨论】:

之前,做一些你不知道的事情。阅读文档,查看其他代码并学习。 【参考方案1】:

自 Django 1.10 起,TEMPLATE_DIRS 就不再是受支持的设置。您应该获得更新的指南。

TEMPLATES = [
    
      'BACKEND': 'django.template.backends.django.DjangoTemplates',
      'APP_DIRS': True,
      'DIRS': [os.path.join(BASE_DIR, 'templates')],
    ,
]

(另外,不要将您的设置放在视图中。有一个 settings.py 文件是有原因的。)

【讨论】:

以上是关于模板不存在“django 2.0”的主要内容,如果未能解决你的问题,请参考以下文章

Django 模板不存在

检查模板中是不是存在变量,如果不存在则不会在记录器中导致错误

模板不存在于/

模板 Django(不存在于 /)

苹果cms模板文件不存在:public/jump.html

TemplateInputException:解析模板时出错****,模板可能不存在