Flask 中的过滤器与自定义过滤器

简介: Flask 中的过滤器与自定义过滤器

Flask 中的过滤器与自定义过滤器


简介:

在 Flask 中,模板过滤器是一种强大的工具,用于在模板中对变量进行处理和转换。它们允许您在模板中执行各种操作,如格式化文本、处理日期、转换大小写等。同时,Flask 还允许定义自己的自定义过滤器,以满足特定应用程序的需求。


Flask项目创建参考这篇文章:通过命令行的方式快速创建一个flask项目


内置过滤器


Flask 提供了一些内置的模板过滤器,这些过滤器可以直接在模板中使用。以下是一些常用的内置过滤器:


  • safe: 标记字符串为安全的 HTML,使其不会被转义。
  • capitalize: 将字符串的首字母大写。
  • lower: 将字符串转换为小写。
  • upper: 将字符串转换为大写。
  • title: 将字符串中的每个单词的首字母大写。
  • trim: 删除字符串首尾的空白字符。
  • truncate: 将字符串截断为指定长度,并添加省略号(…)。


使用内置过滤器的示例


下面是一个简单的示例,演示了如何在 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 变量。

  • 运行结果

相关文章
|
6月前
|
Python
Flask里面的默认转换器和自定义转换器
Flask里面的默认转换器和自定义转换器
41 0
|
1月前
|
安全 Python
Flask过滤器与自定义过滤器的用法
Flask过滤器与自定义过滤器的用法
20 4
|
6月前
|
数据库 开发者 Python
flask中的abort函数和自定义异常
flask中的abort函数和自定义异常
86 0
|
Python
python flask自定义404错误页面
python flask自定义404错误页面
235 0
Python Flask 编程 | 连载 08 - Jinja2 过滤器
Python Flask 编程 | 连载 08 - Jinja2 过滤器
Python Flask 编程 | 连载 08 - Jinja2 过滤器
|
SQL 前端开发 算法
【flask进阶】Flask实现自定义分页(python web通用)
分页操作在web开发中几乎是必不可少的,而我们的flask不像django自带封装好的分页操作,要分页则需要依赖flask-sqlalchemy中的分页查询,但是分页这么重要且简单的操作,自己实现必须要会这个思维,我也在网上看了一些,但大体上不合我意,因此这篇我带大家手写一个分页操作!
720 0
【flask进阶】Flask实现自定义分页(python web通用)
|
8天前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
25 2
|
17天前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
25 2
|
19天前
|
JSON API 数据格式
构建RESTful APIs:使用Python和Flask
构建RESTful APIs:使用Python和Flask
26 1