模板

本文介绍了Django框架中的模板系统,包括if/else条件判断、for循环迭代、ifequal比较、注释及过滤器的使用方法,并展示了如何在模板中包含其他模板。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Django 模板标签

基本语法格式如下:

{%if condition %}
... display
{% endif %}

或者:

{%if condition1 %}
... display 1
{%elif condition2 %}
... display 2
{%else%}
... display 3
{% endif %}

根据条件判断是否输出。if/else 支持嵌套。
{% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not ),例如:

{%if athlete_list and coach_list %}     
athletes 和 coaches 变量都是可用的。
{% endif %}

for 标签

{% for %} 允许我们在一个序列上迭代。
与Python的 for 语句的情形类似,循环语法是 for X in Y ,Y是要迭代的序列而X是在每一个特定的循环中使用的变量名称。
每一次循环中,模板系统会渲染在 {% for %} 和 {% endfor %} 之间的所有内容。
例如,给定一个运动员列表 athlete_list 变量,我们可以使用下面的代码来显示这个列表:

{% for athlete in athlete_list %}    
{{ athlete.name }}
{% endfor %}

给标签增加一个 reversed 使得该列表被反向迭代:

{%for athlete in athlete_list reversed %}
...
{% endfor %}

可以嵌套使用 {% for %} 标签:

{%for athlete in athlete_list %}
{{ athlete.name }}h1>
{%for sport in athlete.sports_played %}
{{ sport }}li>
{% endfor %}ul>
{% endfor %}

ifequal/ifnotequal 标签

{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。
下面的例子比较两个模板变量 user 和 currentuser :

{% ifequal user currentuser %}
Welcome!h1>
{% endifequal %}

和 {% if %} 类似, {% ifequal %} 支持可选的 {% else%}

{% ifequal section 'sitenews'%}
SiteNewsh1>
{%else%}
NoNewsHereh1>
{% endifequal %}

注释标签

Django 注释使用 {# #}。

{# 这是一个注释 #}

过滤器

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符,如下所示:

{{ name|lower }}

{{ name }} 变量被过滤器 lower 处理后,文档大写转换文本为小写。
过滤管道可以被==套接== ,既是说,一个过滤器管道的输出又可以作为下一个管道的输入:

{{ my_list|first|upper }}

以上实例将第一个元素并将其转化为大写。
有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含。 例如:

{{ bio|truncatewords:"30"}}

这个将显示变量 bio 的前30个词。
其他过滤器:
- addslashes : 添加反斜杠到任何反斜杠、单引号或者双引号前面。
- date : 按指定的格式字符串参数格式化 date 或者 datetime 对象,实例:

{{ pub_date|date:"F j, Y"}}
  • length : 返回变量的长度。

include 标签

{% include %} 标签允许在模板中包含其它的模板的内容。
下面这个例子都包含了 nav.html 模板:

{% include "nav.html"%}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值