最适合网络开发者的网站
Django。初学者课程

尿素 西斯

Django 模板变量


模板变量

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

例子

templates/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': '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 %} 循环遍历成员。

您将详细了解 模板标签 在下一章中。



评论