django渲染模板不存在

时间:2016-02-25 08:30:26

标签: python django django-templates

我正在使用linuxpython 3.4django 1.8.2pytmysql

在我的virtualenv中有:

db.sqlite3 manage.py new/ templates/

settings.py:

首先我评论了'DIRS':[],

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

然后添加此部分:

TEMPLATE_DIRS = (    
        '/home/niloofar/django/niloofar/new/templates',    
)

urls.py:

来自new.views import welcome

urlpatterns = [
    url(r'^welcome', welcome),
]

views.py:

from django.shortcuts import render

def welcome(request):

    message = "welcome again:D"
    return render(request, 'base.html', {'message': message})

在templates目录中,有base.html文件:

<html>
 <body>
 <p>* {{ message }} *</p>
 </body>
 </html>

当我刷新页面时,它会输出错误:

  

异常类型:TemplateDoesNotExist

     

例外值:base.html

1 个答案:

答案 0 :(得分:4)

试试这个,不需要评论DIRS。 不推荐使用TEMPLATE_DIRS设置。请参阅链接https://docs.djangoproject.com/en/1.9/ref/settings/#template-dirs

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(os.path.dirname(__file__), '..//', 'templates').replace('\\', '/')],
        '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',
            ],
        },
    },
]