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