django模板路径

作者: binarystar | 来源:发表于2015-06-24 19:00 被阅读4276次

    ** 软件环境:** windows7+Python2.7.9+Django1.8.2
    今天在学到Django模板的时候,关于setting.py中配置模板路径TEMPLATE_DIRS出现了一些问题。

    一、模板应用实例

    按照Django模板的指示,将在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件,整个目录结构如下:

    templates01.png

    然后向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/ ,可以看到页面:

    templates02.png

    ** 注意:** 根据错误提示信息,是加载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/ ,可以看到页面:

    templates03.png

    这个结果让我明白问题在于* 模板路径TEMPLATE_DIRS * 。。

    2 将templates文件夹放在E:\data_workspace\HelloWorld\HelloWorld目录下。

    templates04.png

    然后访问http://127.0.0.1:8000/hello/, 问题依然存在。

    templates05.png

    从上面可以看出,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 ',)

    参考链接:

    Django documentation

    相关文章

      网友评论

        本文标题:django模板路径

        本文链接:https://www.haomeiwen.com/subject/qdceqttx.html