django 1.8 出现 TemplateDoesNotExist 错误

出现TemplateDoesNotExist错误的原因有很多,常见的原因如下

1   文件路径错误

解决办法 看路径是否设置正确

2  TEMPLATE_DIR 赋值格式错误,经常将字符串赋值给它,正确应该是元组

解决办法

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIRS = (

    os.path.join(BASE_DIR, ‘templates‘).replace(‘\\‘, ‘/‘),
    )
 

3  这就是本文的重点,被这个bug折腾了好几个小时

解决办法:

楼主一开始一直以为是上面两种错误,但是尝试了好多方法都还是不行,例如改为绝对路径 ,例如不使用元组,但无论怎么改就是不行。

因为没有意识到是Djang版本问题,一直在stackoverflow上把关于 TemplateDoesNotExist的问题一个一个看,

偶然之间发现了一个回答,附上链接 :TemplateDoesNotExist in project folder django 1.8

楼主环境是 Ubuntu 下 Python 3.4 Django 1.8

发现Django1.8,设置要加载模板的路径时,不是直接自己定义一个TEMPLATE_DIR,然后给它赋值

而是修改TEMPLATE那里加上一个 DIR的值,

#settings.pyBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

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

改完之后便能成功运行,故楼主认为是Django的版本问题。

本人才疏学浅,以上皆是一孔之见,如果有什么错误,望不吝赐教。

可随意转载,但请说明出处。
时间: 2024-10-07 07:15:25

django 1.8 出现 TemplateDoesNotExist 错误的相关文章

解决django TemplateDoesNotExist错误

同事部署了一台服务器,网站架构使用django.其中部分网页访问出现TemplateDoesNotExist错误,导致无法访问.查看日志提示少了admin/base.html文件.查看对应网页,里面确实有一句代码{% extends "admin/base.html" %}. 不知道去哪里找这个文件,在网上看到说是django中缺少template文件.由于有另外一个完全一样的服务器,就在那个服务器上找,确实在lib/python2.7/site-packages/django/con

django实现登录时候输入密码错误5次锁定用户十分钟

django实现登录时候输入密码错误5次锁定用户十分钟 在学习django的时候,想要实现登录失败后,进行用户锁定,切记录锁定时间,在网上找了很多资料,但是都感觉不是那么靠谱,于是乎,我开始了我的设计,其实我一开始想要借助redis呢,但是想要先开发一个简单的,后续在拆分后,然后在去进行拆分, 这样也是很接近我们在真实的开发中所遇到问题. 我的思路是: 输入账号密码>是否已经登录>提示已经登录 输入账号密码>错误次数少于6次>校验密码>登录成功,记录登录时间,错误次数清空,记

django ajax提交避免csrf错误的方法

使用django 防御csrf功能时,ajax提交表单 {{ csrf_token }}加入到data里面,可避免csrf错误.位置如下红色标注: $.ajax({    :,    :{:.,},    :,    :(callback){       callback = jQuery.parseJSON(callback);       (callback.> ){          .()          .(callback[].);          =callback[].- .

Django 笔记 manage.py sync 错误

大年三十大家不放鞭炮果然安静了好多,没事继续看django的书 前几天看到了数据模型就一直卡在那里,今天特地把mysql替换成文本数据库sqlite试试看 但是遇到了manage.py sync 错误,无法创建初始数据库 C:\OneDriver\OneDrive\python\csvr>python manage.py sync Unknown command: 'sync' Type 'manage.py help' for usage. 然后help了一下,尼玛果然连sync参数都没有 C

[Python]django使用多进程连接msyql错误

问题 mysql 查询出现错误 error: (2014, "Commands out of sync; you can't run this command now") 查询 mysql文档中的解释 If you get Commands out of sync; you can't run this command now in your client code, you are calling client functions in the wrong order. This c

django “如何”系列7:错误汇报

当你正在运行一个公共的站点的时候,你应该关掉DEBUG设置.这将使你的服务器运行的更快,同时也能预防别有用心的用户从你的错误页面看到你应用的一些详细配置信息.然而,当debug为false的时候,你将永远看不到由你的站点产生的错误--所有人都只能看到你的公开的错误页面.出于你必须跟踪你部署的站点的错误,django可以配置成当那些错误发生的时候,创建这些错误汇报给你. 邮件汇报 服务器错误 当DEBUG设置为False的时候,无论什么时候你的代码引发一个处理不了的异常 然后导致服务器错误(500

django 实现登录时候输入密码错误5次锁定用户十分钟

在学习django的时候,想要实现登录失败后,进行用户锁定,切记录锁定时间,在网上找了很多资料,但是都感觉不是那么靠谱, 于是乎,我开始了我的设计,其实我一开始想要借助redis呢,但是想要先开发一个简单的,后续在拆分后,然后在去进行拆分, 这样也是很接近我们在真实的开发中所遇到问题. 我的思路是: 输入账号密码>是否已经登录>提示已经登录 输入账号密码>错误次数少于6次>校验密码>登录成功,记录登录时间,错误次数清空,记录登录状态 输入账号密码>错误大于六次>提

[Django]template {% if 1==1 %} 错误

今天群里有个人问,在django的模板里面,下面这段代码为啥不对? {% if 1==1 %} {% endif %} 乍一看我还不信, == 不就是判断是不是相等的吗? 自己把代码放到一个网页里面试了试. TemplateSyntaxError at /mngm/operationlog/search/ Could not parse the remainder: '==1' from '1==1' 果然是不对,看了点源码,其实就是不能解析这个格式,也没啥特别的. 不过不注意可能会写错. te

解决跨域问题以及Django中POST传递参数错误

一.跨域 在进行前后端开发的时候需要涉及到跨域的问题,跨域既可以在前端解决也可以在后端解决.前段解决的思路就是转换路径,将发出的请求的url地址转换成可以映射成的地址.后端的解决思路是将获取的地址转换成可以映射的地址. 1. 模型 1.1 前端跨域解决的模型 由于路由router的不同,因此在跨域请求的时候通过更换请求源为origin再对后端进行请求 1.2 后端跨域解决的模型 后端通过可接收的url来进行相同path的处理,揭示了前后端分析的关键点以及跨域解决的本质,即对相同的path进行不同