/ hello / Django上的TemplateDoesNotExist错误

时间:2018-03-12 04:04:04

标签: python django

我是django python的初学者。虽然我的模板是正确的目录,但我收到了上述错误。

我的view.py是这样的。

from __future__ import unicode_literals
from django.http import HttpResponse
from django.shortcuts import render
def hello(request):
    return render(request,"C:/Users/Vivek/myproject/myapp/template/hello.html",{})

我在C:\ Users \ Vivek \ myproject \ myapp \ template

上有hello.html

以下是我得到的错误。

TemplateDoesNotExist at /hello/
C:/Users/Vivek/myproject/myapp/template/hello.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/hello/
Django Version: 1.11.10
Exception Type: TemplateDoesNotExist
Exception Value:    
C:/Users/Vivek/myproject/myapp/template/hello.html

2 个答案:

答案 0 :(得分:1)

链接模板是一种糟糕的方式。 而是检查您的设置文件并定义操作系统绝对路径。 它看起来像这样:

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

更改您的代码
return render(request,"C:/Users/Vivek/myproject/myapp/template/hello.html",{})

到此

return render(request,"hello.html",{})

它应该有用。

答案 1 :(得分:1)

Django这样做的方法是在设置文件中定义模板的目录

'DIRS': [os.path.join(BASE_DIR, 'templates')],

因此,只需将此行添加到您的TEMPLATES设置中,然后就可以了。

Django自动搜索你传递的目录中的模板,你只需要在render方法中给出模板名称。