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]

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

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

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

- default_if_none
仅对变量是None的进行缺省设置,对于空字符,False,不存在的不进行处理.
':variable':None
'variable':False
{{ variable|default_if_none:'i am default' }}
'variable':False
{{ variablssse|default_if_none:'i am default' }}
- length
'variable':[1,2,3]
'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"

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

- 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 }}

- 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\nSan,CA"
{{ variable|linebreaks }}

- linebreaksbr
'variable':"Main\nSan,CA"
{{ variable|linebreaksbr }}

linebreakbr与linebreak的区别是:前者只把\n转换为
,后者还附带了
,
- 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 }}

Django内置filter总结的更多相关文章
- Django内置Admin
Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttyp ...
- Django内置权限扩展案例
当Django的内置权限无法满足需求的时候就自己扩展吧~ 背景介绍 overmind项目使用了Django内置的权限系统,Django内置权限系统基于model层做控制,新的model创建后会默认新建 ...
- Django内置模板标签
Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...
- 框架----Django内置Admin
Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: 依赖APP: django.contrib.auth django.contrib.contenttyp ...
- 第三章:模版层 - 2:Django内置模板标签
Django内置标签总览 可以查询下表来总览Django的内置标签: 标签 说明 autoescape 自动转义开关 block 块引用 comment 注释 csrf_token CSRF令牌 cy ...
- Django内置分页
一.django内置分页 from django.shortcuts import render from django.core.paginator import Paginator, EmptyP ...
- Django 内置分页器
先导入Django内置的分页器 在商品列表页或者购物车列表页导入 在渲染list.html导入 然后在views后台渲染方法写入 打开list页面结果
- Django内置模版过滤器
Django内置过滤器总览 可以查询下表来总览Django的内置过滤器: 过滤器 说明 add 加法 addslashes 添加斜杠 capfirst 首字母大写 center 文本居中 cut 切除 ...
- Django内置过滤器详解附代码附效果图--附全部内置过滤器帮助文档
前言 基本环境 Django版本:1.11.8 Python版本:3.6 OS: win10 x64 本文摘要 提供了常用的Django内置过滤器的详细介绍,包括过滤器的功能.语法.代码和效果示例. ...
- JSON和Django内置序列化
JSON 什么是JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * J ...
随机推荐
- AI时代的灵魂拷问:我们真正的核心竞争力到底是什么?
"当所有人都在谈论AI+的时候,今天我想聊一点不一样的..." 上周,朋友看着我用Cursor在30分钟内完成了他过去需要两天才能完成的工作. 那一刻,一种强烈的危机感涌上心头,他 ...
- Selenium KPI接口 屏幕截图
屏幕截图功能常用的有两种: savescreenshot()及 getscreenshotasfile(). 使用格式 self.driver.save_screenshot('baidu.png') ...
- 『Plotly实战指南』--绘图初体验
今天,打算通过绘制一个简单的散点图,来开启我们 Plotly 绘图的初次尝试. 本文目的不是介绍如何绘制散点图,而是通过散点图来介绍Plotly 绘图的基础步骤. 1. 绘制散点图:初探 Plotly ...
- WPS常用快捷键汇总
创建新文档 Ctrl+N或者Alt+F+N(对应baiNew) 打开文档 Ctrl+O或者Alt+F+O(对应Open) 关闭文du档 Ctrl+W或者Alt+W+C 保存当前文zhi档 Ctrl+S ...
- 几个技巧,教你去除文章的 AI 味!
最近有不少朋友在利用 AI 写毕业设计论文,几秒钟一篇文章就刷出来的,爽的飞起. 结果万万没想到,人家论文查重服务也升级了,是不是用 AI 写的论文大概率都能被查出来... 这可如何是好啊?救救我救救 ...
- 数据库MVCC详解
MVCC 1.基本介绍 数据库:MySQL.[很多主流数据库都使用了MVCC,比如MySQL的InnoDB引擎.PostgreSQL.Oracle] MVCC,全称Multi-Version Conc ...
- 变异凯撒-python脚本调整ascii码转字符串
题目: 加密密文:afZ_r9VYfScOeO_UL^RWUc 格式:flag{ } 结合题目变异凯撒,第一个字符a到f加了5,第二个字符f到l加了6,推断每个字符都在前一个字符基础上+1. 编写py ...
- 学习unigui【19】unidbgrid的Group By This Field汉化
上面已经将group by this field 汉化. 由于版本的不断更新,不可避免有汉化遗漏.那么说到 如何汉化问题. 根据ExtJSVersion查找你电脑响应目录文件D:\Program Fi ...
- FMM4在XE下使用
在project中增加 {$IFDEF DEBUG} ReportMemoryLeaksOnShutdown := True; {$ENDIF} 即可得到提示,如果内存有泄漏的话.但是想进一步仔细使用 ...
- 【U-Boot】解决U-Boot的“Unknown command 'help' - try 'help'”问题
[U-Boot]解决U-Boot的"Unknown command 'help' - try 'help'"问题 零.起因 最近在玩U-Boot,自己编译U-Boot之后输入hel ...