Django 模板变量

模板变量

在 Django 模板中,您可以通过将变量放在 {{ }} 括号内来呈现变量:

实例

template.html:

<h1>Hello {{ firstname }}, how are you?</h1>
运行实例 »

在视图中创建变量

上例中的变量 firstname 是通过视图发送到模板的:

views.py:

from django.http import HttpResponse
from django.template import loader

def testing(request):
  template = loader.get_template('template.html')
  context = {
    'firstname': 'Robin',
  }
  return HttpResponse(template.render(context, request))
运行实例 »

如您在上面的视图中所见,我们创建了一个名为 context 的对象并用数据填充它,并将其作为 template.render() 函数中的第一个参数发送。


在模板中创建变量

您也可以直接在模板中创建变量,使用 {% with %] 模板标签:

实例

template.html:

{% with firstname="Tobias" %}
<h1>Hello {{ firstname }}, how are you?</h1>
运行实例 »

您将在下一章了解更多关于模板标签的内容。


来自模型的数据

上面的示例展示了如何在模板中创建和使用变量的简单方法。

通常,您要在模板中使用的大部分外部数据都来自模型。

我们在前面的章节中创建了一个模型,称为成员,我们将在本教程的后续章节中使用这个模型。

要从 Memebers 模型中获取数据,我们必须将其导入视图文件,并在视图中从中提取数据:

views.py:

from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from .models import Members

def testing(request):
  mymembers = Members.objects.all().values()
  template = loader.get_template('template.html')
  context = {
    'mymembers': mymembers,
  }
  return HttpResponse(template.render(context, request))

现在我们可以使用模板中的数据了:

template.html:

<ul>
  {% for x in mymembers %}
    <li>{{ x.firstname }}</li>
  {% endfor %}
</ul>
运行实例 »

我们使用 Django 模板标签 {% for %} 循环访问成员。

您将在下一章了解更多关于模板标签