Python学习

2021-04-30  本文已影响0人  逛逛_堆栈

python-flask框架学习(四)

flask 模板文件操作

1、控制操作

用 {%%} 定义的控制代码块,可以实现一些语言层次的功能,比如循环或者if语句。
if分支结构

{% if my_num >= 20%}
   <h2>传递的{{my_num}}大于等于20</h2>
{% else %}
   <h2>传递的{{my_num}}小于20</h2>
{% endif %}

循环结构

<ul>
    {% for item in my_list %}
       <li>{{item}}</li>
    {% endfor %}
</ul>

2、过滤器

过滤器的本质就是函数。有时我们不仅需要输出变量的值,还需要对数据格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。
过滤器的使用方式为:变量名 | 过滤器。
{{variable | filter_name(*args)}}
注意:在 jinja2 中,过滤器是可以支持链式调用的,类似jquery表示设置也是支持链式编程。

2.1、常用过滤器

2.1.1、字符串过滤器
# upper:把值转成大写

<p>{{ 'hello' | upper }}</p>  # HELLO

# lower:把值转成小写

<p>{{ 'HELLO' | lower }}</p>  # hello

# reverse:字符串反转

<p>{{ 'hello' | reverse }}</p>  # olleh

# title:把值中的每个单词的首字母都转成大写

<p>{{ 'helloworld' | title }}</p>  # HelloWorld

# format:格式化输出

<p>{{ 'my name is %s , I am %d years old' | format('张三',18) }}</p>
# my name is 张三 , I am 18 years old

# truncate: 字符串截断

<p>{{ 'hello everyone' | truncate(9)}}</p>

2.1.2、列表过滤器
# first:取第一个元素

<p>{{ [1,2,3,4,5,6] | first }}</p>  # 1

# last:取最后一个元素

<p>{{ [1,2,3,4,5,6] | last }}</p>  # 6

# length:获取列表长度

<p>{{ [1,2,3,4,5,6] | length }}</p>  # 6

# sum:列表求和

<p>{{ [1,2,3,4,5,6] | sum }}</p>  # 21

# sort:列表排序

<p>{{ [6,2,3,1,5,4] | sort }}</p>  # [1, 2, 3, 4, 5, 6]

2.2、自定义过滤器

再flask中,自定义过滤器有两种方式实现。

1、通过Flask应用对象的add_template_filter方法;
2、通过装饰器来实现自定义过滤器;

2.2.1、add_template_filter自定义过滤器

通过调用应用程序实例的 add_template_filter 方法实现自定义过滤器。该方法第一个参数是函数名,第二个参数是自定义的过滤器名称。
1、创建方法、比如说列表反转

def list_reverse(li):
    temp = list(li)
    temp.reverse()
    return temp

2、加入add_template_filter

app.add_template_filter(list_reverse,'list_reverse')

3、测试使用

自定义列表反转
<p>{{ [1,2,3,4,5] | list_reverse }}</p>  # [5,4,3,2,1]
2.2.2、装饰器实现自定义过滤器

用装饰器来实现自定义过滤器。装饰器传入的参数是自定义的过滤器名称。
1、加入装饰器

@app.template_filter('list_reverse')
def list_reverse(li):
    temp = list(li)
    temp.reverse()
    return temp

2、测试使用

自定义列表反转
<p>{{ [1,2,3,4,5] | list_reverse }}</p>  # [5,4,3,2,1]
上一篇下一篇

猜你喜欢

热点阅读