demo.py(自定义过滤器):
# coding:utf-8
from flask import Flask, render_template # 导入render_template
app = Flask(__name__)
@app.route("/index")
def index():
my_list = [1, 2, 3, 4, 5]
return render_template("index.html", my_list = my_list) # 模板变量以键值对的形式传。 (Django中直接传字典,Flask需要拆包)
def list_step_2(li):
"""自定义的过滤器"""
return li[::2]
# 注册过滤器
app.add_template_filter(list_step_2, "my_filter") # 第二个参数表示过滤器的名字。
@app.template_filter("my_filter2") # 参数表示过滤器的名字
# 注册过滤器的第二种方式
def list_step_3(li):
"""自定义的过滤器"""
return li[::3]
if __name__ == '__main__':
app.run(debug=True)
templates/index.html(模板,使用自定义的过滤器):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板</title>
</head>
<body>
<p>{{my_list | my_filter }}</p> <!-- 使用自定义过滤器 -->
<p>{{my_list | my_filter2 }}</p>
</body>
</html>