Django 模板变量
模板变量
在 Django 模板中,你可以通过将变量放在 {{ }}
括号中来渲染它们。
在视图中创建变量
上面的示例中,变量 firstname
是通过视图发送到模板的。
views.py
:
from django.http import HttpResponse
from django.template import loader
def testing(request):
template = loader.get_template('template.html')
context = {
'firstname': 'Linus',
}
return HttpResponse(template.render(context, request))
运行示例 »
正如你在上面的视图中看到的,我们创建了一个名为 context 的对象,用数据填充它,并将其作为第一个参数发送到 template.render()
函数中。
在模板中创建变量
你也可以使用 {% with %}
模板标签直接在模板中创建变量。
变量在出现 {% endwith %}
标签之前一直可用。
示例
templates/template.html
:
{% with firstname="Tobias" %}
<h1>Hello {{ firstname }}, how are you?</h1>
{% endwith %}
运行示例 »
你将在下一章中了解有关 模板标签 的更多信息。
来自模型的数据
上面的示例展示了在模板中创建和使用变量的简单方法。
通常,你在模板中要使用的大部分外部数据都来自模型。
我们在前面的章节中创建了一个名为 Member
的模型,我们将在本教程的后续章节中的许多示例中使用它。
要从 Member
模型获取数据,我们需要在 views.py
文件中导入它,并在视图中提取数据。
members/views.py
:
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from .models import Member
def testing(request):
mymembers = Member.objects.all().values()
template = loader.get_template('template.html')
context = {
'mymembers': mymembers,
}
return HttpResponse(template.render(context, request))
现在我们可以在模板中使用这些数据了。
templates/template.html
:
<ul>
{% for x in mymembers %}
<li>{{ x.firstname }}</li>
{% endfor %}
</ul>
运行示例 »
我们使用 Django 模板标签 {% for %}
来遍历成员。