软件环境: windows7+Python2.7.9+Django1.8.2
今天在学到Django模板的时候,关于setting.py中配置模板路径TEMPLATE_DIRS出现了一些问题。
按照Django模板的指示,将在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件,整个目录结构如下:
然后向Django说明模板文件的路径,修改HelloWorld/settings.py,添加以下代码:
Template dir
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates').replace('\','/'),
)
然后运行命令:
python manage.py runserver
再访问 http://127.0.0.1:8000/hello/ ,可以看到页面:
注意: 根据错误提示信息,是加载templates的时候出现错误,直接去D:\study\Python2.7\lib\site-packages\django\contrib\admin\templates\hello.html找模板了。
1 我把hello.html文件复制到D:\study\Python2.7\lib\site-packages\django\contrib\admin\templates\目录下,再访问 http://127.0.0.1:8000/hello/ ,可以看到页面:
这个结果让我明白问题在于 模板路径TEMPLATE_DIRS 。。
2 将templates文件夹放在E:\data_workspace\HelloWorld\HelloWorld目录下。
然后访问http://127.0.0.1:8000/hello/, 问题依然存在。
从上面可以看出,Template Loader没有查找HelloWorld目录。这说明HelloWold没有映射到Django中。
3 修改HelloWorld/settings.py,添加以下代码:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'HelloWorld',
)
4 然后访问http://127.0.0.1:8000/hello/ ,问题解决,理解了模板的绝对路径。
绝对路径
在windows下也可以设置成绝对路径,将TEMPLATE_DIRS路径设置为:
TEMPLATE_DIRS = ( ' E:\data_workspace\HelloWorld\HelloWorld\templates ',)
这种情况会出错。
解决方案:
Windows用户必须使用斜杠而不是反斜杠,所以只要需要改为即可
TEMPLATE_DIRS = ( ' E:/data_workspace/HelloWorld/HelloWorld/templates ',)
2024 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123