Django过滤器
一、过滤器的作用是什么?
渲染变量;或者说对变量进行过滤(将变量的值进行计算、转换操作)
二、语法
animal
是变量
2.1、过滤器有参数:
{{ animal | add:"2"}} #表示将animal的值增加2
{{ value | default: “nothing” }}#如果 value 有值,则输出 value 的值。如果 value 不存在或为空,则输出 "nothing"。
2.2、过滤器无参数:
{{ animal | capfirst}} #表示animal的第⼀个字符转化成⼤写形式
{{ value | first }}#返回列表中的第⼀个Item;如果value是列表[‘a’,‘b’,‘c’],那么输出将是’a’。
{{value | safe}} #进⾏HTML标签转换;
{{value | slugify}}#将value转换成⼩写形式,同时删除所有分单词字符,并将空格变成横线
#例如:如果value是how are you,那么输出将是how-are-you
三、Django中实战使用——常用的过滤器:
①项目目录下的views.py文件:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
from datetime import datetime
def index(request):
test="THIS IS A LIST!"
list=["A","B","C","D","E"]
data={
'test':test,
'xx':'',
'num1':1,
'num2':2,
'list':list,
'now':datetime.now(),
'html':'<h1>hello django!!!</h1>',
'float':3.1415926
}
return render(request, "index.html", data)
②项目目录下templates模板文件夹下的模板文件index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试!</title>
</head>
<body>
{#没做处理的变量:#}
{{ test }}<br>
{#设置了默认值的变量 在这个值被django认为是False的时候会使用此默认值。比如:空字符串,None。#}
{{ xx|default:'xxxxx' }}<br>
{#设置了只有为None时才使用默认值的变量#}
{{ xx|default_if_none:'aaaaa'}}<br>
{#变为小写后的变量#}
{{ test|lower }}<br>
{#先变为小写再将首字母大写后的变量#}
{{ test|lower|capfirst }}<br>
{#两个数字变量相加 add:字符串相加,数字相加,列表相加,如果失败,将会返回一个空字符串#}
{{ num1|add:num2 }}<br>
{#两个字符串变量相加#}
{{ test|add:xx }}<br>
{#列表变量的第一个元素#}
{{ list|first }}<br>
{#列表变量的最后一个元素#}
{{ list|last }}<br>
{#默认的data日期时间格式#}
{{ now|date }}<br>
{#默认的time时间格式#}
{{ now|time }}<br>
{#这是data过滤器的年月日24小时制时间格式#}
{{ now|date:'Y/m/d/H:i:s' }}<br>
{#这是time过滤器的时分秒12小时制时间格式#}
{{ now|time:'h:i:s' }}<br>
{#这是字符串的join方法 跟python中join一样的用法#}
{{ list|join:'oooo' }}<br>
{#这是字符串的长度方法#}
{{ test|length }}<br>
{#这是列表的长度是否为4#}
{{ list|length_is:4 }}<br>
{#下面这俩有xxx.html类型的,针对html,截断标签中的字符,而不会截断标签#}
{#这是字符串只显示4个字符,其余省略(但是占3位)#}
{{ test|truncatechars:7 }}<br>
{#这是字符串只显示2个单词,其余省略(不占位)#}
{{ test|truncatewords:2 }}<br>
{#这是字符串的切片#}
{{ test|slice:'1:4' }}<br>
{#这是列表的切片#}
{{ list|slice:'2' }}<br>
{#这是含html标签的字符串#}
{{ html }}<br>
{#这是去掉字符串中的html标签#}
{{ html|striptags }}<br>
{#这是关掉自动转义,使字符串中html标签生效#}
{{ html|safe }}<br>
{#这是没做处理的小数#}
{{ float }}<br>
{#这是保留了一位小数#}
{{ float|floatformat }}<br>
{#这是保留了两位小数#}
{{ float|floatformat:'2' }}
</body>
</html>
③效果展示