Django学习6:DTL常用过滤器及模板结构优化

目录

一、为什么要有过滤器?

二、常用过滤器

1.常用过滤器add

2.常用过滤器cut 

3.常用过滤器date

4.常用过滤器default

5.常用过滤器first、last

6.常用过滤器floatformat

7.常用过滤器striptags

8.常用过滤器runcatechars

三、自定义模板过滤器

四、模板结构优化


一、为什么要有过滤器?

DTL中不支持函数,过滤器相当于函数,可以接收参数,最多传入两个参数

过滤器使用格式:{{value|filter}},value代表在views.py中定义的传入模板的参数,filter代表各种过滤器

二、常用过滤器

1.常用过滤器add

作用:用来在模板里传递参数的函数,在Python中用()放参数,但是模板里不支持,add将传进来的参数添加到原来的值上边:

方式1.首先会将传过来的参数和原来的值转换成整形,如果转换成功,则整形相加,返回结果

方式2.若转换整形失败,则进行字符串拼接

使用方法:在HTML文件中:{ value1|add:value2}

按照方式1在HTML中对两个整数的处理:


    {{ "1"|add:"2" }}

在views.py中进行对模板的引用: 

def add_view(request):
    return render(request,'add.html')

在urls.py 中增加一个映射: 

path('add/',views.add_view)

Django学习6:DTL常用过滤器及模板结构优化_第1张图片

按照方式2,将两个列表拼接在一起,起到传递参数到模板的作用

def add_view(request):
    context = {
        'value1' : [1,2,3],
        'value2' : [4,5,6],
    }
    return render(request,'add.html',context=context)

 


    {{ value1|add:value2 }}

Django学习6:DTL常用过滤器及模板结构优化_第2张图片

2.常用过滤器cut 

作用:移除指定字符

使用方法:{{value|cut:""}}

3.常用过滤器date

views.py中定义一个新的函数,并且映射到url

from datetime import datetime
def date_view(request):
    context ={
        "today" : datetime.now()
    }
    return render(request,'date.html',context=context)

HTML代码:


        {{ today|date:"Y-m-d" }}

Django学习6:DTL常用过滤器及模板结构优化_第3张图片

4.常用过滤器default

当列表、字典为空时,或者为NULL时,在获取其值的时候给一个初始值

5.常用过滤器first、last

作用:可以获取列表的第一个、最后一个值

用法:{{value|first}},{{value|last}},其中value为列表名

6.常用过滤器floatformat

可以四舍五入保留小数,默认为一位小数

7.常用过滤器striptags

用法:去掉参数中的html标签,如下,在view.py中有视图函数,定义了一个带有标签的值

def striptags_view(request):
    context = {
        'value':''
    }
    return render(request,'index.html',context=context)

在HTML的body中,有{{value|striptags}},最后显示去掉了

你可能感兴趣的:(Django)