我是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
答案 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方法中给出模板名称。