Django(31)模版中常见的过滤装置

免费模板常见过滤装置

在免费模板中,有时必须对一些数据信息开展解决之后才可以应用。一般在Python中我们都是根据涵数的方式来进行的。而在免费模板中,则是根据过滤装置来完成的。过滤装置应用的是|来应用。
 

add

将传进去的主要参数加上到原先的值上边。这一过滤装置会试着将值和主要参数转化成整形美容随后开展求和。假如转化成整形美容全过程中失败了,那麼会将值和主要参数开展拼凑。如果是字符串数组,那麼会拼凑成字符串数组,如果是目录,那麼会拼凑成一个目录。实例编码以下:

{{ value|add:"2" }}

假如value是相当于4,那麼結果将是6。假如value是相当于一个一般的字符串数组,例如abc,那麼結果将是abc2。add过滤装置的源码以下:

def add(value, arg):
    """Add the arg to the value."""
    try:
        return int(value)   int(arg)
    except (ValueError, TypeError):
        try:
            return value   arg
        except Exception:
            return ''

 

cut

清除值中全部特定的字符串数组。类似python中的replace(args,"")。实例编码以下:

{{ value|cut:" " }}

之上实例可能清除value中全部的空格字符。cut过滤装置的源码以下:

def cut(value, arg):
    """Remove all values of arg from the given string."""
    safe = isinstance(value, SafeData)
    value = value.replace(arg, '')
    if safe and arg != ';':
        return mark_safe(value)
    return value

 

date

将一个日期依照特定的文件格式,恢复出厂设置成字符串数组。实例编码以下:

# 数据信息
context = {
    "birthday": datetime.now()
}

# 免费模板
{{ birthday|date:"Y/m/d" }}

那麼可能輸出2018/02/01。在其中Y意味着的是四位数据的年代,m意味着的是俩位数据的月份,d意味着的是俩位数据的日。
也有大量时间格式化的方法。见下表。

文件格式标识符 叙述 实例
Y 四位数据的年代 2020
m 俩位数据的月份 01-12
n 月份,1-9前边沒有0作为前缀 1-12
d 俩位数据的天 01-31
j 天,但是1-9前边沒有0作为前缀 1-31
g 钟头,12小时文件格式的,1-9前边沒有0作为前缀 1-12
h 钟头,12小时文件格式的,1-9前边有0作为前缀 01-12
G 钟头,24小时文件格式的,1-9前边沒有0作为前缀 1-23
H 钟头,24小时文件格式的,1-9前边有0作为前缀 01-23
i 分鐘,1-9前边有0作为前缀 00-59
s 秒,1-9前边有0作为前缀 00-59

 

default

假如值被评定为False。例如[]""None{}等这种在if分辨中为False的值,都是会应用default过滤装置给予的初始值。实例编码以下:

{{ value|default:"nothing" }}

假如value是相当于一个空的字符串数组。例如"",那麼之上编码可能輸出nothing
 

default_if_none

假如值是None,那麼可能应用default_if_none给予的初始值。这一和default有差别,default是全部被评定为False的都是会应用初始值。而default_if_none则仅有这一值是相当于None的情况下才会应用初始值。实例编码以下:

{{ value|default_if_none:"nothing" }}

假如value是相当于""也即空字符串,那麼之上会輸出空字符串。假如value是一个None值,之上编码才会輸出nothing
 

first

返回列表/元组/字符串数组中的第一个原素。实例编码以下:

{{ value|first }}

假如value是相当于['a','b','c'],那麼輸出可能是a。
 

last

返回列表/元组/字符串数组中的最后一个原素。实例编码以下:

{{ value|last }}

假如value是相当于['a','b','c'],那麼輸出可能是c。
 

floatformat

应用四舍五入的方法恢复出厂设置一个浮点数种类。假如这一过滤装置沒有传送一切主要参数。那麼总是在小数位后保存一个小数,假如小数后边全是0,那麼总是保留整数。自然还可以传送一个主要参数,标志实际要保存好多个小数。

  1. 要是没有传送主要参数:
value 免费模板编码 輸出
34.23234 {{ value|floatformat }} 34.2
34.000 {{ value|floatformat }} 34
34.260 {{ value|floatformat }} 34.3
  1. 假如传送主要参数:
value 免费模板编码 輸出
34.23234 {{ value|floatformat:3 }} 34.232
34.000 {{ value|floatformat:3 }} 34.000
34.26000 {{ value|floatformat:3 }} 34.260

 

join

相近与Python中的join,将目录/元组/字符串数组用特定的标识符开展拼凑。实例编码以下:

{{ value|join:"/" }}

假如value是相当于['a','b','c'],那麼之上编码将輸出a/b/c。
 

length

获得一个目录/元组/字符串数组/词典的长短。实例编码以下:

{{ value|length }}

假如value是相当于['a','b','c'],那麼之上编码将輸出3。假如valueNone,那麼之上将回到0。
 

lower

将值中全部的标识符所有转化成小写字母。实例编码以下:

{{ value|lower }}

假如value是相当于Hello World。那麼之上编码将輸出hello world
 

upper

类似lower,只不过将特定的字符串数组所有转化成英文大写。

 

random

在被给的目录/字符串数组/元组中任意的挑选一个值。实例编码以下:

{{ value|random }}

假如value是相当于['a','b','c'],那麼之上编码会在目录中任意挑选一个。
 

safe

标识一个字符串数组是安全性的。也即会关闭这一字符串数组的全自动转义。实例编码以下:

{{value|safe}}

假如value是一个不包含一切特殊符号的字符串数组,例如<a>这类,那麼之上编码便会把字符串数组一切正常的键入。假如value是一串html编码,那麼之上编码可能把这个html编码3D渲染到电脑浏览器中。
 

slice

类似Python中的切成片实际操作。实例编码以下:

{{ some_list|slice:"2:" }}

之上编码可能给some_list从4开始做切成片实际操作。
 

stringtags

删掉字符串数组中全部的html标识。实例编码以下:

{{ value|striptags }}

假如value<strong>hello world</strong>,那麼之上编码可能輸出hello world
 

truncatechars

假如给出的数组长度超出了过滤装置特定的长短。那麼便会开展激光切割,而且会拼凑三个点来做为句号。实例编码以下:

{{ value|truncatechars:5 }}

假如value是相当于北京欢迎您~,那麼輸出的結果是北京市...。很有可能你能想,为何不容易北京欢迎您...呢。由于三个点也占了三个标识符,因此 北京市 三个点的字符长度便是5。
 

truncatechars_html

类似truncatechars,只不过不容易激光切割html标识。实例编码以下:

{{ value|truncatechars:5 }}

假如value是相当于<p>北京欢迎您~</p>,那麼輸出将是<p>北京市...</p>。

评论(0条)

刀客源码 游客评论