• Django内置filter总结


    内置过滤器

    目的是对绝大多数的内置过滤器进行测试总结学习,现设置如下:

    urls.py中设置:

    urlpatterns=[
    url(r'^method',views.method,name='method'),
    url(r'^$',TemplateView.as_view(template_name='banners/test.html',extra_context={'variable':'hello',other:'something'}),name='index'),
    ]

    test.html中设置:

    {{ variable|filter:args }}

    Strings,Numbers,Lists

    • add

    'variable':'hello'

    {{ variable|add:' world' }}

    'variable':'3'

    {{ variable|add:' 4' }}

    ':variable':[1,2,3], 'other':[4,5]
    {{ variable|add:other }}

    **需要注意的是**不能在template中add:list
    • default
      如果变量是false,不存在,或者空字符串,则用该过滤器来提供了一个缺省值.
      ':variable':''

    {{ variable|default:'i am default' }}

    ':variable':False

    {{ variable|default:'i am default' }}

    ':variable':False

    {{ variablesss|default:'i am default' }}

    • default_if_none
      仅对变量是None的进行缺省设置,对于空字符,False,不存在的不进行处理.
      ':variable':None

    {{ variable|default_if_none:'i am default' }}

    'variable':False

    {{ variable|default_if_none:'i am default' }}

    'variable':False

    {{ variablssse|default_if_none:'i am default' }}

    • length

    'variable':[1,2,3]
    {{ variable|length }}

    'variable':'abcd'
    {{ variable|length }}

    'variable':123
    {{ variable|length }}

    • length_is
      'variable':'abcd'
      {{ variable|length_is:4 }}
      或者{{ variable|length_is:'4' }}

    • make_list

    'variable':'1234'
    {{ variable|make_list }}

    'variable':1234
    {{ variable|make_list }}

    • yesno
      yesno过滤器将True,False,None,映射为yes,no,maybe
      'variable':True
      {{ variable|yesno}}

    Numbers

    • divisibleby
      变量可被过滤器后参数整除,返回True,否则返回False,过滤器参数可为例如5,'5'.
      'variable':20
      {{ variable|divisibleby:'4' }}

    'variable':'20'
    {{ variable|divisibleby:'4' }}

    • filesizeformat

    'variable':'250'
    {{ variable|filesizeformat }}

    'variable':200000
    {{ variable|filesizeformat }}

    • floatformat
      对浮点数小数点后的数字进行round,过滤器后参数可正可负,基本功能都一样,但对于比如9.000这样的数字而言,floatformat:3是9.000.而floatformat:-3是,默认是-1.
      ':variable':'3.1415'
      {{ variable|filesizeformat }}

    • get_digit
      获取数字某一位的值,1是最后一个,如果过滤器参数小于1,或者不是整数,那么输出全部数字,如果超过了位数,输出0.
      'variable':12345
      {{ variable|get_digit:3 }}

    Strings

    • capfirst

    ':variable':'hello world'
    {{ variable|capfirst }}

    • cut:

    将string变量中出现的cut后的参数全部去除,返回剩下的部分

    'variable':'asbscs’
    {{ variable|cut:'s' }}

    'variable':'a b c'
    {{ variable|cut:' ' }}

    • linenumbers

    'variable':"""a
    b
    c
    d"""
    {{ variable|cut:' ' }}

    • lower

    将字符串变量的大写字母全部变成小写字母

    "variable":"Hello World"
    {{ variable|lower }}

    • stringformat

    对于python,有 '%3d' % 7--->'007'
    同样的,去掉'%',
    "variable":7
    {{ variable|stringformat:'3d' }}

    • title

    "variable":'hellor'
    {{ variable|title }}

    • slugify

    "variable":'hellor yes no'
    {{ variable|slugify }}

    • truncatechars

    "variable":'hellosjfdkls'
    {{ variable|trancatechars:4 }}

    • truncatechar_html

    "variable":'hellosjfdkls'
    {{ variable|trancatechars_html:4 }}

    • truncatewords

    "variable":'coffeehouse started as a small store'
    {{ variable|trancatewords:3 }}

    • truncatewords_html

    "variable":'coffeehouse started as a small store'
    {{ variable|trancatewords:3 }}

    • upper

    "variable":'coffeehouse started as a small store'
    {{ variable|upper }}

    • wordcount

    "variable":'coffeehouse started as a small store'
    {{ variable|wordcount }}

    Lists and Dictionaries

    • dictsort

    'variable':[{'name':'Downtown','city':'san diego'},{'name':'Uptown','city':'san Diego'},{'name':'Midtown','city':'san Diego'},{'name':'Atown','city':'san Diego'}]

    {% with newdict=variable|dictsort:'name' %}
    {{ newdict }}
    {% endwith %}
    上例,对variable中的各dict中的'name'进行排序(按照字母),赋值给newdict后,显示newdict,当然也可以直接{{ variable|dictsort:'name'}}
    dictsort过滤器也可以通过指明一个index编号来对包含多个元组的列表进行操作,比如{% with otherlist=listoftuples|dictsort:0 %}就是通过每个元组的第一个元素进行了重排。

    • dictsortreversed

    'variable':[{'name':'Downtown','city':'san diego'},{'name':'Uptown','city':'san Diego'},{'name':'Midtown','city':'san Diego'},{'name':'Atown','city':'san Diego'}]

    {% with newdict=variable|dictsortreversed:'name' %}
    {{ newdict }}
    {% endwith %}

    • join

    就像python 列表的join方法一样。

    'variable':['a','e','i']
    {{ variable|join:'--'}}

    • first,last,random

    返回变量列表的第一个,最后一个,随机的item

    • slice

    就像列表的slice操作
    'variable':['a','e','i','o','u']
    {{ variable|slice:':3' }}

    • unordered_list

    'variable':['Stores',['san diego',['Downtown','Uptown','Midtown']]]
    {{ variable|unordered_list }}

    Spacing and special characters

    • addslashed

    对所有的引号进行添加斜

    'variable':"today's news"
    {{ variable|addslashes }}

    • ceneter

    'variable':"1234567890111213"
    {{ variable|center:'15' }}

    • ljust,rjust

    • linebreaks

    'variable':"Main San,CA"
    {{ variable|linebreaks }}

    • linebreaksbr

    'variable':"Main San,CA"
    {{ variable|linebreaksbr }}

    linebreakbr与linebreak的区别是:前者只把 转换为
    ,后者还附带了

    ,

    • safe

    若变量为yes,输出的仍然是本身,如果加safe过滤器,则表明信任该变量,允许渲染。
    'variable':"yes"
    {{ variable|safe }}

    • safeseq

    'variable':['Yes','OK']
    {{ variable|safeseq|join:',' }}

    Url

    • urlencode

    'variable':'http://localhost/drinks?type=cold&size=large'
    {{ variable|urlencode }}

    • urlize

    使得链接可被点击
    'variable':'https://www.midasuser.cn/index.html'
    {{ variable|urlize }}

    • urlizetrunc

    'variable':'https://www.midasuser.cn/index.html'
    {{ variable|urlizetrunc:10 }}

    ##### 愿你一寸一寸地攻城略地,一点一点地焕然一新 #####
  • 相关阅读:
    Gridview如何用自定义按钮进行编辑和提交修改
    winform多线程中给datagridview绑定数据源
    DevExpress控件WebchartControl的学习记录
    datagridview右键选中单元格并获取到焦点
    asp.net局部页面打印,以及如何去掉打印时自动保留的URL地址(页眉页脚)
    GridView如何实现点击某行的指定列弹出新窗体
    C# Color Font 与String之间的转换
    推荐一款 asp.net js日历控件
    js浮点运算替代函数
    VSeWss 1.3 CTP 安装后出现错误
  • 原文地址:https://www.cnblogs.com/johnyang/p/13614877.html
Copyright © 2020-2023  润新知