📜  if – Django 模板标签(1)

📅  最后修改于: 2023-12-03 15:31:21.823000             🧑  作者: Mango

Django If 模板标签

在 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-else 语句

除了基本的 if 标签以外,Django 还提供了 if-else 语句,可以选择渲染两种不同的模板内容:

{% if expression %}
    ... # 条件成立时要渲染的内容
{% else %}
    ... # 条件不成立时要渲染的内容
{% endif %}

在上述语法中,如果 expression 的值为 True,那么第一个块(即 if 标签中的内容)会被渲染;如果 expression 的值为 False,那么第二个块(即 else 标签中的内容)会被渲染。

if-elif-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,那么最后一个块会被渲染。

参考链接