- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Django 模板中常用的过滤器实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
在模版中,有时候需要对一些数据进行处理以后才能使用。一般在Python中我们是通过函数的形式来完成的。而在模版中,则是通过过滤器来实现的。过滤器使用的是|来使用.
将传进来的参数添加到原来的值上面。这个过滤器会尝试将值和参数转换成整形然后进行相加。如果转换成整形过程中失败了,那么会将值和参数进行拼接。如果是字符串,那么会拼接成字符串,如果是列表,那么会拼接成一个列表。示例代码如下:
1
|
{{ value|add:
"2"
}}
|
如果value是等于4,那么结果将是6。如果value是等于一个普通的字符串,比如abc,那么结果将是abc2。add过滤器的源代码如下:
1
2
3
4
5
6
7
8
9
|
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
''
|
移除值中所有指定的字符串。类似于python中的replace(args,"")。示例代码如下:
1
|
{{ value|cut:
" "
}}
|
以上示例将会移除value中所有的空格字符。cut过滤器的源代码如下:
1
2
3
4
5
6
7
|
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
|
将一个日期按照指定的格式,格式化成字符串。示例代码如下:
1
2
3
4
5
6
7
|
# 数据
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 |
。
如果值被评估为False。比如[],"",None,{}等这些在if判断中为False的值,都会使用default过滤器提供的默认值。示例代码如下:
1
|
{{ value|default:
"nothing"
}}
|
如果value是等于一个空的字符串。比如"",那么以上代码将会输出nothing。 。
如果值是None,那么将会使用default_if_none提供的默认值。这个和default有区别,default是所有被评估为False的都会使用默认值。而default_if_none则只有这个值是等于None的时候才会使用默认值。示例代码如下:
1
|
{{ value|default_if_none:
"nothing"
}}
|
如果value是等于""也即空字符串,那么以上会输出空字符串。如果value是一个None值,以上代码才会输出nothing.
返回列表/元组/字符串中的第一个元素。示例代码如下:
1
|
{{ value|first }}
|
如果value是等于['a','b','c'],那么输出将会是a.
返回列表/元组/字符串中的最后一个元素。示例代码如下:
1
|
{{ value|last }}
|
如果value是等于['a','b','c'],那么输出将会是c。 。
使用四舍五入的方式格式化一个浮点类型。如果这个过滤器没有传递任何参数。那么只会在小数点后保留一个小数,如果小数后面全是0,那么只会保留整数。当然也可以传递一个参数,标识具体要保留几个小数.
如果没有传递参数:
。
value | 模版代码 | 输出 |
---|---|---|
34.23234 | {{ value|floatformat }} | 34.2 |
34.000 | {{ value|floatformat }} | 34 |
34.260 | {{ value|floatformat }} | 34.3 |
。
如果传递参数:
value | 模版代码 | 输出 |
---|---|---|
34.23234 | {{ value|floatformat:3 }} | 34.232 |
34.000 | {{ value|floatformat:3 }} | 34.000 |
34.26000 | {{ value|floatformat:3 }} | 34.260 |
。
类似与Python中的join,将列表/元组/字符串用指定的字符进行拼接。示例代码如下:
1
|
{{ value|join:
"/"
}}
|
如果value是等于['a','b','c'],那么以上代码将输出a/b/c。 。
获取一个列表/元组/字符串/字典的长度。示例代码如下:
1
|
{{ value|length }}
|
如果value是等于['a','b','c'],那么以上代码将输出3。如果value为None,那么以上将返回0.
将值中所有的字符全部转换成小写。示例代码如下:
1
|
{{ value|lower }}
|
如果value是等于Hello World。那么以上代码将输出hello world.
类似于lower,只不过是将指定的字符串全部转换成大写.
在被给的列表/字符串/元组中随机的选择一个值。示例代码如下:
1
|
{{ value|random }}
|
如果value是等于['a','b','c'],那么以上代码会在列表中随机选择一个.
标记一个字符串是安全的。也即会关掉这个字符串的自动转义。示例代码如下:
1
|
{{value|safe}}
|
如果value是一个不包含任何特殊字符的字符串,比如<a>这种,那么以上代码就会把字符串正常的输入。如果value是一串html代码,那么以上代码将会把这个html代码渲染到浏览器中。 。
类似于Python中的切片操作。示例代码如下:
1
|
{{ some_list|
slice
:
"2:"
}}
|
以上代码将会给some_list从2开始做切片操作.
删除字符串中所有的html标签。示例代码如下:
1
|
{{ value|striptags }}
|
如果value是<strong>hello world</strong>,那么以上代码将会输出hello world。 。
如果给定的字符串长度超过了过滤器指定的长度。那么就会进行切割,并且会拼接三个点来作为省略号。示例代码如下:
1
|
{{ value|truncatechars:
5
}}
|
如果value是等于北京欢迎您~,那么输出的结果是北京...。可能你会想,为什么不会北京欢迎您...呢。因为三个点也占了三个字符,所以北京+三个点的字符长度就是5.
类似于truncatechars,只不过是不会切割html标签。示例代码如下:
1
|
{{ value|truncatechars:
5
}}
|
如果value是等于<p>北京欢迎您~</p>,那么输出将是<p>北京...</p>.
到此这篇关于Django 模板中常用的过滤器实现的文章就介绍到这了,更多相关Django 模板过滤器内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://www.cnblogs.com/jiakecong/p/14803751.html 。
最后此篇关于Django 模板中常用的过滤器实现的文章就讲到这里了,如果你想了解更多关于Django 模板中常用的过滤器实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!