📅  最后修改于: 2023-12-03 15:31:21.823000             🧑  作者: Mango
在 Django 中,模板标签是一种特殊的语法,用于在 HTML 模板中动态地渲染数据。其中,if
标签是一种用于选择性地渲染模板内容的标签。
if
标签的基本语法为:
{% if expression %}
... # 条件成立时要渲染的内容
{% endif %}
其中,if
后面的 expression
是一个可以返回布尔型值的表达式或变量。如果 expression
的值为 True
,那么 if
标签中间的内容就会被渲染;反之,如果 expression
的值为 False
,那么中间的内容就不会被渲染。
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}!</p>
{% else %}
<p>Please log in to continue.</p>
{% endif %}
在上述示例中,如果用户已经登录,那么会渲染出一个欢迎语句,否则会渲染出一句提示登录的话。
除了基本的 if
标签以外,Django 还提供了 if-else
语句,可以选择渲染两种不同的模板内容:
{% if expression %}
... # 条件成立时要渲染的内容
{% else %}
... # 条件不成立时要渲染的内容
{% endif %}
在上述语法中,如果 expression
的值为 True
,那么第一个块(即 if
标签中的内容)会被渲染;如果 expression
的值为 False
,那么第二个块(即 else
标签中的内容)会被渲染。
此外,Django 还支持多重选择的 if-elif-else
语句。其语法为:
{% if expression1 %}
... # 如果 expression1 的值为 True,渲染此块
{% elif expression2 %}
... # 如果 expression1 的值为 False,expression2 的值为 True,渲染此块
...
{% else %}
... # 如果所有的 expression 的值都为 False,渲染此块
{% endif %}
在 if-elif-else
语句中,会按顺序逐个检查每个 expression 是否为 True,如果检查到一个 expression 的值为 True,那么就渲染对应的块。如果所有的 expression 的值都为 False,那么最后一个块会被渲染。