Flask - 自定义过滤器

该博客介绍了如何在Flask中创建自定义模板过滤器,包括通过`add_template_filter()`方法和装饰器两种方式。示例展示了如何使用过滤器替换字符串中的特定内容以及反转列表。在模板中,可以方便地通过`{{变量|过滤器名称}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#! /usr/bin/python3
# -*- encoding:utf8 -*-

"""
Flask -- 自定义过滤器(本质就是函数)
构建过滤器
	- 使用Flask模块 add_template_filter()方法
	    * 定义一个函数(携带参数),需要有返回值
	        def functionName(value):
	            Python Code
	            :return value
	    * 使用add_template_filter()方法构建过滤器
	        app.add_template_filter(<functionName>,name='FilterName')
	    * 在模板中使用自定义过滤器: {{ 变量名 | FilterName }}
	- 使用装饰器
	    * 定义一个函数(携带参数),需要有返回值
	    * 使用@app.template_filter()方法构建过滤器
	        @app.template_filter(<name='FilterName')
	        def functionName(value):
	            Python Code
	            :return value
	    * 在模板中使用自定义过滤器: {{ 变量名 | FilterName }}
"""

from flask import Flask, render_template

app = Flask(__name__)

word = 'hello world hello python'
li = [22, 13, 63, 3, 7]


# 自定义过滤器
# add_template_filter()方法
def replace_hello(value):
    word = value.replace('hello', '')
    return word.strip()


app.add_template_filter(replace_hello, name='replace_hello')


# 使用装饰器自定义过滤器
@app.template_filter('re_li')
def rev_list(li):
    re_li = list(li)
    re_li.reverse()
    return re_li


@app.route('/filter')
def flaskFilter():
    html = render_template('defineFilter.html', list=li, word=word)
    return html


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5002, debug=True)

defineFilter.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>自定义过滤器</title>
</head>
<body>

{# 使用自定义过滤器进行列表的排序 #}
<br>
{{ list }}<br>
{{ list | re_li }}

<hr>
{# 使用自定义过滤器进行字符串替换 #}
{{ word | replace_hello }}


</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值