Django 模板 – 新的变量声明
在本文中,我们将介绍 Django 模板中如何声明新的变量。Django 是一个流行的 Python Web 框架,它提供了一种简单而强大的方式来构建 Web 应用程序。其中,模板是 Django 中的一个重要组成部分,它用于在服务器端生成动态的 HTML 页面。
阅读更多:Django 教程
Django 模板语言简介
Django 模板语言(Template Language)是 Django 框架的一部分,旨在使 HTML 页面的生成更加灵活和动态。它是一种简单而又强大的语言,由一些标签和过滤器组成。
变量声明
在 Django 模板中,我们可以通过变量来引用数据,在使用变量之前,我们需要先声明它。变量的声明使用 {% 和 %} 包裹起来,在其中使用 with 标签进行声明。
{% with total=price*quantity %}
<p>Total price: {{ total }}</p>
{% endwith %}
在上面的例子中,我们使用 with 标签声明了一个名为 total 的变量,它的值是 price 与 quantity 相乘的结果。在变量声明后,我们可以通过 {{ total }} 使用这个变量。
变量作用域
在 Django 模板中,变量的作用域是声明它的块(block)中。块可以是整个模板,也可以是模板中的某个包含标签(如 if、for)。
在下面的例子中,我们声明了一个名为 message 的变量,并在两个不同的块中引用它。
{% if condition %}
{% with message="Hello" %}
<p>{{ message }}, World!</p>
{% endwith %}
{% endif %}
{% if other_condition %}
<p>{{ message }}, Django!</p>
{% endif %}
在这个例子中,第一个 if 块中声明了一个名为 message 的变量,并将它的值设为 "Hello"。然后,在第二个 if 块中,我们尝试引用这个变量,但由于变量的作用域限定在第一个 if 块中,所以在第二个 if 块中是无法访问到这个变量的。
变量过滤器
在 Django 模板中,可以使用过滤器对变量进行修改和格式化。过滤器用 | 符号来表示,并可以通过在变量后添加过滤器的名称和参数来调用。
<p>{{ name|title }}</p>
<p>{{ price|floatformat:2 }}</p>
在上面的例子中,我们使用了两个不同的过滤器。第一个过滤器是 title,它将变量 name 的首字母大写。第二个过滤器是 floatformat,它将变量 price 格式化为浮点数,并保留2位小数。
示例
为了更好地理解 Django 模板中变量的声明和使用,我们来看一个完整的示例。
假设我们有一个包含商品信息的字典,如下所示:
products = [
{'name': 'iPhone 12', 'price': 699, 'quantity': 3},
{'name': 'AirPods Pro', 'price': 249, 'quantity': 2},
{'name': 'Apple Watch', 'price': 399, 'quantity': 1}
]
我们可以使用 Django 模板来生成一个包含每个商品总价的 HTML 列表:
<ul>
{% for product in products %}
{% with total=product.price*product.quantity %}
<li>{{ product.name }} - Total: ${{ total }}</li>
{% endwith %}
{% endfor %}
</ul>
在上面的例子中,我们使用了 for 标签来遍历商品列表。在每次迭代中,我们使用 with 标签声明了一个名为 total 的变量,它的值是当前商品的单价与数量相乘的结果。然后,我们在列表项中使用这个变量来显示商品的总价。
总结
在本文中,我们介绍了 Django 模板中声明新变量的方法,并介绍了变量的作用域和过滤器的使用。通过在模板中使用变量,我们可以实现灵活和动态的页面生成。希望本文能够对你理解 Django 模板的变量声明提供帮助。
极客教程