• Django常用内置过滤器


    1.add

    此过滤器将首先尝试将两个值强制为整数。如果失败,它会尝试将值一起添加。这将工作在一些数据类型(字符串,列表等)和失败在其他人。如果失败,结果将是一个空字符串。

    {{ value | add:"1" }}  # 如果value等于1,展示效果为2
    
    {{ val1 | add:val2 }}  # 如果val1为[1,2],val2为[3,4],展示效果为[1,2,3,4]

    2.center

    将值置于给定宽度的字段中。

    {{ value | center:"7" }}  # 如果value为hello,展示效果为" hello "

    3.cut

    从给定字符串中删除arg的所有值。

    {{ value | cut:"a" }}  # 如果value为"haha lala",展示效果为"hh ll"

    4.date

    根据给定的格式设置日期

    {{ value | date:"Y-m-d H:i:s" }}  # 如果value为时间对象,展示效果为把时间对象格式化为2019-01-17 10:04:25

    日期可用格式字符串介绍:

    格式字符

    描述

    示例输出

    a

    'a.m.''p.m.' (请注意,这与PHP输出略有不同,因为这包括与Associated Press样式匹配的句点。)

    'a.m.'

    A

    'AM''PM'

    'AM'

    b

    月,文字,3个字母,小写。

    'jan'

    B

    未实现。

     

    c

    ISO 8601格式。 (注意:与其他格式化程序,如“Z”,“O”或“r”不同,如果值是一个天真的datetime(见 datetime.tzinfo),“c”格式化程序不会添加时区偏移。

    2008-01-02T10:30:00.000123+02:002008-01-02T10:30:00.000123 (如果datetime是天真的)

    d

    月的日期,带前导零的2位数字。

    '01''31'

    D

    星期几,文字,3个字母。

    'Fri'

    e

    时区名称。可以是任何格式,或可能返回一个空字符串,具体取决于datetime。

    '''GMT''-500''US/Eastern' 等。

    E

    月,特定于语言环境的替代表示,通常用于长日期表示。

    'listopada' (对于波兰语区域,而不是 'Listopad'

    f

    时间,12小时小时和分钟,如果他们为零,分钟将关闭。专有扩展。

    '1''1:30'

    F

    月,文字,长。

    'January'

    g

    小时,12小时格式,不含前导零。

    '1''12'

    G

    小时,24小时格式,无前导零。

    '0''23'

    h

    小时,12小时格式。

    '01''12'

    H

    小时,24小时格式。

    '00''23'

    i

    分钟。

    '00''59'

    I

    夏令时,无论是否生效。

    '1''0'

    j

    没有前导零的月份日。

    '1''31'

    l

    星期几,文字,长。

    'Friday'

    L

    是否为闰年的布尔值。

    TrueFalse

    m

    月,2位数字,前导零。

    '01''12'

    M

    月,文字,3个字母。

    'Jan'

    n

    没有前导零的月。

    '1''12'

    N

    月缩写在Associated Press风格。专有扩展。

    'Jan.''Feb.''March''May'

    o

    ISO-8601周编号年,对应于使用闰年的ISO-8601周编号(W)。更常见的年份格式见Y。

    '1999'

    O

    与格林威治时间的差值(以小时为单位)。

    '+0200'

    P

    时间,12小时制,分钟和’a.m。’/’p.m。’,如果它们为零,分钟将关闭,如果合适,分钟将保留特殊字符串’午夜’和’中午’。专有扩展。

    '1 a.m.''1:30 p.m.''midnight''noon''12:30 p.m.'

    r

    RFC 5322 格式的日期。

    'Thu, 21 Dec 2000 16:01:07 +0200'

    s

    秒,带前导零的2位数。

    '00''59'

    S

    每月日期的英文序数后缀,2个字符。

    'st''nd''rd''th'

    t

    指定月份的天数。

    2831

    T

    本机的时区。

    'EST''MDT'

    u

    微秒。

    000000999999

    U

    自Unix时代以来的秒数(1970年1月1日00:00:00 UTC)。

     

    w

    星期几,没有前导零的数字。

    '0' (星期日)至 '6' (星期六)

    W

    ISO-8601年的周数,周从星期一开始。

    153

    y

    年,2位数。

    '99'

    Y

    年,4位数。

    '1999'

    z

    一年中的一天。

    0365

    Z

    时区偏移(以秒为单位)。 UTC之前的时区的偏移总是负的,并且对于UTC的东部的偏移总是正的。

    -4320043200

    5.default

    如果值的计算结果为 False,则使用给定的默认值。否则,使用该值。

    {{ value | defult:"Nothing at all" }}  # 如果value是""(空字符串),展示后面的默认值"Nothing at all",否则展示value的值

    6.default_if_none

    如果(且只有)值是 None,使用给定的默认值。否则,使用该值。

    注意,如果给出一个空字符串,默认值将使用 not。如果要回退空字符串,请使用 default过滤器

    {{ value | default_if_none:"nothing" }}  # 如果 value 是 None,则展示字符串 "nothing",否则展示value的值

    7.dictsort

    获取字典列表,并返回该列表按参数中给出的键排序。

    {{ value | dictsort:"name" }}
    
    # 如果value是:
    [
        {'name': 'zed', 'age': 19},
        {'name': 'amy', 'age': 22},
        {'name': 'joe', 'age': 31},
    ]
    # 输出结果:
    [
        {'name': 'amy', 'age': 22},
        {'name': 'joe', 'age': 31},
        {'name': 'zed', 'age': 19},
    ]

    dictsort还可以通过指定索引处的元素来排序列表(或任何其他实现 __getitem__() 的对象)的列表。

    {{ value | dictsort:0 }}  # 这里0作为索引必须是整数不是字符串
    
    # 如果 value 是:
    [
        ('a', '42'),
        ('c', 'string'),
        ('b', 'foo'),
    ]
    # 那么输出将是:
    [
        ('a', '42'),
        ('b', 'foo'),
        ('c', 'string'),
    ]

    8.dictsortreversed

    获取字典列表,并返回按照参数中给出的键按相反顺序排序的列表。这与上面的过滤器完全相同,但返回的值将是相反的顺序。

    9.fileseizeformat

    将该值格式化为“人类可读”文件大小(即 '13 KB''4.1 MB''102 bytes' 等)。

    {{ value | filesizeformat }}  # 如果 value 是123456789,则展示的是 117.7 MB

    文件大小和SI单位

    严格地说,filesizeformat 不符合国际单位制度,其建议使用KiB,MiB,GiB等,当字节大小以1024的幂(这是这里的情况)计算时。相反,Django使用对应于更常用名称的传统单位名称(KB,MB,GB等)。

    10.floatformat

    当不带参数时,将一个浮点数舍入到小数点后一位,但前提是要显示一个小数部分。例如:

    value

    模板

    输出

    34.23234

    {{ value|floatformat }}

    34.2

    34.00000

    {{ value|floatformat }}

    34

    34.26000

    {{ value|floatformat }}

    34.3

    如果与数字整数参数一起使用,则 floatformat 将数字四舍五入到该小数位数。例如:

    value

    模板

    输出

    34.23234

    {{ value|floatformat:3 }}

    34.232

    34.00000

    {{ value|floatformat:3 }}

    34.000

    34.26000

    {{ value|floatformat:3 }}

    34.260

    特别有用的是传递0(零)作为参数,它将使float浮动到最接近的整数。

    value

    模板

    输出

    34.23234

    {{ value|floatformat:"0" }}

    34

    34.00000

    {{ value|floatformat:"0" }}

    34

    39.56000

    {{ value|floatformat:"0" }}

    40

    如果传递给 floatformat 的参数为负,则它将一个数字四舍五入到这个小数位,但前提是要显示一个小数部分。例如:

    value

    模板

    输出

    34.23234

    {{ value|floatformat:"-3" }}

    34.232

    34.00000

    {{ value|floatformat:"-3" }}

    34

    34.26000

    {{ value|floatformat:"-3" }}

    34.260

    使用没有参数的 floatformat 等同于使用具有 -1 参数的 floatformat

    11.join

    使用字符串连接列表,如Python的 str.join(list)

    {{ value | join:" // " }}  # 如果 value 是列表 ['a', 'b', 'c'],则展示的是字符串 "a // b // c"

    12.length

    返回值的长度。这适用于字符串和列表

    {{ value | length }}  # 如果 value 是 ['a', 'b', 'c', 'd'] 或 "abcd",展示的是4,过滤器为未定义的变量返回 0

    13.lower

    将字符串转换为全部小写

    {{ value | lower }}  # 如果value是"Hello"则展示的是"hello"

    14.upper

    将字符串转换为全大写

    {{ value | upper }}  # 如果 value 是"hello",展示的是"HELLO"

    15.make_list

    返回转换为列表的值。对于字符串,它是一个字符列表。对于整数,在创建列表之前将参数强制转换为unicode字符串

    {{ value | make_list }}  # 如果value是字符串"la",展示的就是列表["l", "a"],如果value是数12,展示的就是列表[1, 2]

    16.random

    返回给定列表中的随机项

    {{ value|random }}  # 如果value的值为[1, 2 , 3],展示的可能就是2,列表随机取

    17.truncatechars

    如果长度大于指定的字符数,则截断字符串。截断的字符串将以可翻译的省略号序列(“...”)结束

    {{ value | truncatechars:2 }}  # 如果value是"hello",那么展示的就是"he..."

    18.truncatewords

    在一定数量的字后截断字符串

    {{ value | truncatewords:2 }}  # 如果value的值是"gmx is pig",展示的就是"gmx is ..."

    19.wordcount

    返回字数

    {{ value | wordcount }}  # 如果value是"gmx is pig",展示的就是3

    详情参考链接https://docs.djangoproject.com/en/1.7/ref/templates/builtins/

  • 相关阅读:
    Xcode编译WebDriverAgentRunner报错:The bundle identifier for IntegrationApp.app couldn’t be read.解决方案
    python+django更新表结构执行相关命令报错:No installed app with label 'interface_crud'解决方案
    python激活虚拟环境env报错:no such file or directory: env/Scripts/activate解决方案
    Django创建api_crud app时报错:file "manage.py", line 16 ) from exc ^ SyntaxError: invalid syntax解决方案
    Redis未授权访问漏洞复现
    逻辑漏洞小结之SRC篇
    Linux下清空用户登录记录和命令历史的方法
    linux下直接清空日志的方法
    Linux Hackers/Suspicious Account Detection
    linux查看所有用户信息
  • 原文地址:https://www.cnblogs.com/zzqit/p/10281352.html
Copyright © 2020-2023  润新知