Django默认模板常用内置过滤器(上)

什么是内置过滤器?

相当于在html文件中对前端传过来的变量使用函数进行处理

如:

django的视图函数传过来一个变量为 hello,python ,对该字符串进行一些处理

如将所有字母变为大写,去掉其中所有的字母 o等等

使用内置过滤器的调用格式

{{ variable_name | function_name:args }}

function_name,英文冒号,args

表示 对变量 variable_name 使用名为 function_name 的函数进行处理,参数是 args

过滤器名,冒号,参数 三者之间不能有空格

Django默认模板常用的内置过滤器与举例

本文以一个data变量和一个base.html为例

views.py 文件

def get(request):
    data={}
    data['count']=20
    data['array'] = range(9)
    data['time']=datetime.datetime.now()
    data['cut_str']='hello string'
    data['flag']=2>3
    data['dict_list']=[{'name':'张三','age':21},{'name':'李四','age':20}]
    data['float_num']=3.1415926

    return render(request,'base.html',data)

base.html 文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Django常用内置过滤器 base.html</title>
</head>
<body>
    <div>add => count:{{ count | add:10 }}</div>
    <div>date => time : {{ time|date:"y-m-d h:i:s" }}</div>
    <div>cut => cut_str : {{ cut_str|cut:'l' }}</div>
    <div>capfirst => capfirst_str : {{ cut_str|capfirst }}</div>
    <div>default => flag : {{ flag|default:'否' }}</div>
    <div>default_if_none => flag : {{ flag|default_if_none:'空:none' }}</div>
    <div>dictsort => {{ dict_list|dictsort:'age' }}</div>
    <div>dictsortreversed => {{ dict_list|dictsortreversed:'age' }}</div>
    <div>floatformat => {{ float_num|floatformat:2 }}</div>
    <div>first => {{ dict_list|first }}</div>
    <div>last => {{ dict_list|last }}</div>
    <div>join => {{ array|join:'-' }}</div>
</body>
</html>

过滤器与举例

add

对传入的value进行加法运算

# count = 20
<div>add => count:{{ count | add:10 }}</div>

# add => count:30

date

将日期进行格式化显示

# time=datetime.datetime.now()
<div>date => time : {{ time|date:"y-m-d h:i:s" }}</div>

# date => time : 20-07-19 11:21:08

cut

从传入的字符串中,删除所有指定的字符串,并返回删除后的结果

# cut_str = 'hello string'
<div>cut => cut_str : {{ cut_str|cut:'l' }}</div>

# cut => cut_str : heo string

capfirst

将字符串的首字母大写

# cut_str = 'hello string'
<div>capfirst => capfirst_str : {{ cut_str|capfirst }}</div>

# capfirst => capfirst_str : Hello string

default

当传入的参数判为 false 时,显示为指定的值

# flag = 2 > 3
<div>default => flag : {{ flag|default:'否' }}</div>

# default => flag : 否

default_if_none

当传入的参数仅仅为 none 时,显示为指定的值

# flag = 2 > 3
<div>default_if_none => flag : {{ flag|default_if_none:'空:none' }}</div>

# default_if_none => flag : False

dictsort

对传入的字典,使用指定的key进行排序,从小到大排列

# dict_list = [{'name': '张三', 'age': 21}, {'name': '李四', 'age': 20}]
<div>dictsort => {{ dict_list|dictsort:'age' }}</div>

# dictsort => [{'name': '李四', 'age': 20}, {'name': '张三', 'age': 21}]

dictsortreversed

与 dictsort 作用相反

对传入的字典,使用指定的key进行排序,从大到小排列

# dict_list = [{'name': '张三', 'age': 21}, {'name': '李四', 'age': 20}]
<div>dictsortreversed => {{ dict_list|dictsortreversed:'age' }}</div>

# dictsortreversed => [{'name': '张三', 'age': 21}, {'name': '李四', 'age': 20}]

first

取出传入参数中的第一个元素

# dict_list = [{'name': '张三', 'age': 21}, {'name': '李四', 'age': 20}]
<div>first => {{ dict_list|first }}</div>

# first => {'name': '张三', 'age': 21}

last

取出传入参数中的最后一个元素

# dict_list = [{'name': '张三', 'age': 21}, {'name': '李四', 'age': 20}]
<div>last => {{ dict_list|last }}</div>

# last => {'name': '李四', 'age': 20}

floatformat

保留指定位数的小数(四舍五入)

# float_num = 3.1415926
<div>floatformat => {{ float_num|floatformat:2 }}</div>

# floatformat => 3.14

join

相当于python中的join函数,将传入的列表,使用某个字符拼接为一个字符串

# array = range(9)
<div>join => {{ array|join:'-' }}</div>

# join => 0-1-2-3-4-5-6-7-8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值