在 Django 模板中显示视图(View)中的变量,需要通过模板语言来访问和展示这些变量。Django 使用的模板语言称为 Django 模板标签(Django Template Tags),它允许我们在模板中插入动态的数据和逻辑。以下是显示视图变量的各种情况,包括在模板中如何使用不同类型的变量。
假设我们有一个简单的 Django 视图,它向模板传递了以下变量:
# views.py
from django.shortcuts import render
def my_view(request):
context = {
'text_variable': 'Hello, this is a text variable!',
'list_variable': ['Apple', 'Banana', 'Orange'],
'dictionary_variable': {'key1': 'Value 1', 'key2': 'Value 2'},
'number_variable': 42,
'boolean_variable': True,
}
return render(request, 'my_template.html', context)
现在,让我们在模板中显示这些变量:
<!-- my_template.html -->
<!DOCTYPE html>
<html>
<head>
<title>My Template</title>
</head>
<body>
<!-- 显示文本变量 -->
<p>{{ text_variable }}</p>
<!-- 显示列表变量 -->
<ul>
{% for item in list_variable %}
<li>{{ item }}</li>
{% endfor %}
</ul>
<!-- 显示字典变量 -->
<ul>
{% for key, value in dictionary_variable.items %}
<li>{{ key }}: {{ value }}</li>
{% endfor %}
</ul>
<!-- 显示数字变量 -->
<p>The answer to everything is {{ number_variable }}.</p>
<!-- 显示布尔变量 -->
{% if boolean_variable %}
<p>This is a true statement.</p>
{% else %}
<p>This is a false statement.</p>
{% endif %}
</body>
</html>
上述模板中使用了 Django 模板标签来展示不同类型的视图变量:
-
{{ variable_name }}
: 用于显示文本变量。在模板中使用双花括号{{ }}
包裹变量名即可。 -
{% for item in list_variable %}...{% endfor %}
: 用于遍历列表变量。使用{% %}
包裹for
循环来遍历列表,并在循环内部使用{{ item }}
来访问列表元素。 -
{% for key, value in dictionary_variable.items %}...{% endfor %}
: 用于遍历字典变量。使用{% %}
包裹for
循环来遍历字典的键值对,并在循环内部使用{{ key }}
和{{ value }}
来访问键和值。 -
{% if boolean_variable %}...{% else %}...{% endif %}
: 用于根据布尔变量的值进行条件判断。使用{% %}
包裹if
语句,并在else
块中提供可选的逻辑。
通过上述方法,你可以在 Django 模板中全面地显示来自视图的各种类型的变量。