"""
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]
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>