我正在使用django版本11.3。我创建一个单独的HTML模板文件并导入我的views.py文件,当我运行此文件时,它给我一个错误。
/ myapp /
的ModuleNotFoundError没有名为' django.templates'
的模块我的settings.py文件代码:
TEMPLATES = [
{
'BACKEND': 'django.templates.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.templates.context_processors.debug',
'django.templates.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
views.py文件:
from django.http import HttpResponse
from django .template import loader
from .models import album
def myapp(request):
all_albums = album.objects.all()
template = loader.get_template('myapp/index.html')
context = {
'all_albums': all_albums,
}
return HttpResponse(template.render(context, request))
def detail(request, id):
return HttpResponse("<h1>Your requested numbers is: " + str(id) +"<h2>")
html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>This is list item</title>
</head>
<body>
<ul>
{% for a in all_albums %}
<li><a href="/myapp/{{ a.id }}">{{ a.artist }}</a></li>
{% endfor %}
</ul>
</body>
</html>
目录结构:
myapp > templates > myapp > index.html
答案 0 :(得分:3)
您必须使用django.template
而不使用s
:
TEMPLATES = [{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'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',
],
},
}]`