Django进阶之模板过滤器

本文介绍了Django模板语言中的一些过滤器用法,包括Lower、Upper、Join、Default、Date、Capfirst、Cut、Length以及加减乘除等,用于修改变量的显示样式,处理数据,如转换大小写、连接字符串、提供默认值、格式化日期等。同时展示了过滤器在实际代码中的应用示例。
摘要由CSDN通过智能技术生成

过滤器可以用来修改变量的显示样式。

使用方式

格式:{{变量|过滤器方法}}。可以连续使用,形式如:{{变量|过滤器方法1|过滤器方法2}}。

过滤器如下

Lower

转化为小写字母

格式:变量|lower

Upper

转化为大写字母

格式:变量|upper

Join

过滤器可以传递参数,参数用引号包起来

格式:列表|join:’#’

示例:

视图

def template2(request):

    grades = Grades.objects.get(pk=1)
    students = Students.stuObj2.filter(grades=1)
    testlist = ['This', 'is', 'an', 'example', 'template']

    return render(request, 'test/index.html', {
        'title': 'This is an example template',
        'info': grades,
        'students': students,
        'testlist': testlist
    })

模板

<ul>
    <li>{{title}}</li>
    <li>{{title|lower}}</li>
    <li>{{title|upper}}</li>
    <li>{{testlist|join:'#'}}</li>
</ul>

效果

Default

如果一个变量没有被提供,或者值为false、空,可以使用默认值。

格式:{{var|default:'没有'}}

示例:

<li>{{test_default|default:'未定义'}}</li>

Date

根据给定格式转换日期为字符串

格式:{{dateVal|date:'Y-m-d'}}

示例:

{{info.create_time|date:'Y-m-d'}}

Capfirst

首字母大写

格式:{{ value|capfirst }}

示例:

{{'title'|capfirst}}

Cut

删除指定值,可去掉字符串中的空格

示例:

{{title|cut:' '}}

Length

显示一个字符串或者数组的长度,例如{{ value|length }}。

加减乘除

Add:过滤器,加减使用

Widthratio

对于创建条形图等,该标签计算给定值与最大值的比率,然后将该比率应用于一个常数。

格式 {% widthratio this_value max_value 100 %}

表示 this_value/max_value * 100

示例:

<h2>加减乘除</h2>
<ul>
    <li>num = {{num}}</li>

    <!--加法-->
    <li>{{num}}+{{num}}={{num|add:10}}</li>

    <!--减法-->
    <li>{{num}}+{{num}}={{num|add:-5}}</li>

    <!--乘法 num * 5-->
    <li>{{num}}*5={% widthratio num 1 5 %}</li>

    <!--除法 num / 5-->
    <li>{{num}}/5={% widthratio num 5 1 %}</li>
</ul>

组合用法

<ul>
    {% for stu in students %}
        {% if forloop.counter|divisibleby:2 %}
            <li style="color:red">{{forloop.counter}}-{{stu.name}}</li>
        {% else %}
            <li style="color:blue">{{forloop.counter}}-{{stu.name}}</li>
        {% endif %}
    {% empty %}
        <li>无数据</li>
    {% endfor %}
</ul>

注意:变量、管道符(|)和过滤器方法之间不能有空格。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值