1,flask中内置的过滤器模板中常用方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
{ #过滤器调用方式{{变量|过滤器名称}} #} <! - - safe过滤器,可以禁用转义 - - > {{ '<strong>hello</strong>' |safe}} <br / > 大写转小写 {{ 'hello' |lower}} 小写转大写 {{ 'hello' |upper}} <br / > 字符串反转 {{ 'abc' |reverse}} 首字母大写 {{ 'james' |capitalize}} 过滤html标签 {{ '<em>apple</em>' | striptags}} <br / > 只显示 list 首个元素 {{[ 100 , 95 , 55 , 81 ]|first}} 只显示 list 最后一个元素 {{[ 100 , 95 , 55 , 81 ]|last}} 显示 list 的长度 {{[ 100 , 95 , 55 , 81 ]|length}} list 里所有元素求和 {{[ 100 , 95 , 55 , 81 ]| sum }} list 进行排序 {{[ 100 , 95 , 55 , 81 ]|sort}} format :格式化输出 {{ '%s is %d' | format ( 'name' , 17 ) }} <br / > 对语句块进行过滤 { % filter upper % } qwedr,tyuio,piuytre,rtyuiuyt afaife oifafa, afaf { % endfilter % } <br / > 链式调用过滤器 {{ 'abc' |reverse|upper}} <br><br> 自定义过滤器 {{ 100 |my_filter}} |
自定义过滤器(后端视图函数)
1
2
3
4
|
@app .template_filter( "my_filter" ) #自定义过滤器 def my_filter(val): return '$' + str (val) |
2,django中内置的过滤器模板中常用方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
{ #通过内置过滤器实现加减法#} {{test_int | add: 10 }} {{ list . 0 }} <br> { % for i in list % } {{i}} { #打印索引 从1开始的计数器#} {{forloop.counter}} { #打印数组索性#} {{forloop.counter0}} { #倒序索引#} {{forloop.revcounter}} <br> { % endfor % } <br> { % for i in dict % } { #取首位和末尾 first last#} 姓名:{{i.name |first}} 年龄:{{i.age}} { % endfor % } <br> { #大写小写#} {{ 'jack' | upper | lower}} { #返回长度#} {{ '123456' | length}} { #截断操作#} {{content | truncatechars: 10 }} 截断单词{{content | truncatewords: 2 }} { # 格式化日期#} {{dt | date: 'y-m-d h:i:s' }} |
自定义过滤器(后端视图函数)
首先在工程文件的同名配置文件下创建templatetags文件夹,建立myfiler.py用来自定义过滤器
例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
from django import template #注册过滤器对象 register = template.library() #自定义过滤器 #通过装饰器的方式来注册自定义过滤器 @register . filter def my_str(val): return "$" + str (val) #定义一个双参数过滤器 @register . filter def my_str_two(val,p1): return val + p1 #定义一个多参数的过滤器 #注册过滤器的时候,需要注册simple_tag @register .simple_tag def my_str_many(val,p1,p2): return val + p1 + p2 #定义一个取余数的过滤器 @register . filter def get_line(val): return int (val) % 2 |
在templates文件夹中模板文件中导入
{#导入过滤器文件#}
{% load myfilter %}
1
2
3
4
5
6
7
8
9
|
{ #导入过滤器文件#} { % load my_filter % } {{test_str | my_str}} { # 两个参数进行调用#} {{ '你好' | my_str_two: "不好" }} { #调用多参数的过滤器#} { % my_str_many '你好' '不好' '啊' % } {{test_list | length}} |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/xcsg/p/10310897.html