简介:
在 Flask 中,模板过滤器是一种强大的工具,用于在模板中对变量进行处理和转换。它们允许您在模板中执行各种操作,如格式化文本、处理日期、转换大小写等。同时,Flask 还允许定义自己的自定义过滤器,以满足特定应用程序的需求。
Flask项目创建参考这篇文章:通过命令行的方式快速创建一个flask项目
Flask 提供了一些内置的模板过滤器,这些过滤器可以直接在模板中使用。以下是一些常用的内置过滤器:
下面是一个简单的示例,演示了如何在 Flask 模板中使用内置过滤器:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flask Filters</title>
</head>
<body>
<h1>{{ "hello"|capitalize }}</h1>
<p>{{ "This is a SAMPLE text."|lower }}</p>
<p>{{ "This is a SAMPLE text."|upper }}</p>
<p>{{ "this is a long text"|truncate(10) }}</p>
</body>
</html>
除了内置过滤器外,Flask 还允许定义自己的自定义过滤器,以满足特定需求。要定义自定义过滤器,需要使用 app.template_filter()
装饰器,并将其应用于一个函数。该函数将接受一个或多个参数,并返回处理后的值。
from flask import Flask, render_template
app = Flask(__name__)
# 自定义过滤器,将字符串反转
@app.template_filter('reverse')
def reverse_filter(s):
return s[::-1]
@app.route('/')
def index():
return render_template('index.html', text="Hello, World!")
if __name__ == '__main__':
app.run(debug=True)
模板文件 index.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Custom Filter Example</title>
</head>
<body>
<h1>{{ text }}</h1>
<p>{{ text|reverse }}</p>
</body>
</html>
在这个示例中,定义了一个名为 reverse_filter
的自定义过滤器,并将其应用于 text
变量。该过滤器接受一个字符串作为参数,并返回其反转后的字符串。在模板中,使用 |
管道符将 reverse
过滤器应用于 text
变量。