我试图在谷歌应用引擎应用上运行一个非常基本的Django模板(在我的本地机器上,尚未部署,如果这很重要),但我的应用程序表现得像它不知道如何模板工作。它只是将{ % extends "base.html" %}
打印到网页上,而不是使用它来加载模板,如下所示:
尽管如此,这些观点似乎正常运作,因为" {{message}}"至少加载正确的东西。我觉得我只是错过了一些愚蠢的信息,但我感到茫然。我已经看了一段时间的Django文档,我不知道出了什么问题。以下是相关代码:
settings.py小部件:
TEMPLATE_DIRS = (
os.path.abspath(os.path.join(os.path.dirname( __file__ ), '..', 'hello/templates'))
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
)
在views.py中:
from django import http
from django.shortcuts import render_to_response
def home(request):
return render_to_response('index.html', {'message':'Hello World!'})
def form(request):
return render_to_response('index.html', {'message':'This page will have a form.'})
在base.html(位于正确的TEMPLATE_DIRS路径中):
<head>
<title>Lunar Spring</title>
<meta charset="utf-8">
</head>
<body>
<div class="header">
Some Website Name
</div>
<div class="content">
{ % block content %}
{ % endblock % }
</div>
</body>
在index.html中(也在正确的路径中):
{ % extends "base.html" % }
{ % block content % }
{{ message }}
{ % endblock % }
答案 0 :(得分:2)
您的django模板语法不正确,请注意花括号和百分号之间的空格。
例如,替换:
{ % extends "base.html" % }
使用:
{% extends "base.html" %}