Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

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 %} 来遍历成员。

你将在下一章中了解有关 模板标签 的更多信息。

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.