一周学会Flask3 Python Web开发-Jinja2模板过滤器使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程:

2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili

在Jinja2中,过滤器(filter)是一些可以用来修改和过滤变量值的特殊函数,过滤器和变量用一个竖线 ' | '(管道符号)隔开,需要参数的过滤器可以像函数一样使用括号传递。

Jinja2常用过滤器如下表格:

过滤器 说明
abs 设置数值的绝对值
default 设置默认值
escape 转义字符,转成HTML的语法
first 获取上下文的第一个元素
last 获取上下文的最后一个元素
length 获取上下文的长度
join 功能与Python的join语法一致
safe 将上下文转义处理
int 将上下文转换为int类型
float 将上下文转换为float类型
lower 将字符串转换为小写
upper 将字符串转换为大写
replace 字符串的替换
truncate 字符串的截断
striptags 删除字符串中所有的HTML标签
trim 截取字符串前面和后面的空白字符
string 将上下文转换成字符串
wordcount 计算长字符串的单词个数

我们来看一个示例,视图函数里定义一个titleA

复制代码
titleA = 'student'

student.html

复制代码
<h3>过滤器</h3>
first: {{ titleA | first }}<br>
last:{{ titleA | last }}<br>
length:{{ titleA | length }}<br>
upper:{{ titleA | upper }}

运行结果:

有时候,jinjia2默认提供的过滤器不够我们用,我们还可以自定义过滤器。比如我们开发过程中,经常需要格式化日期。我们可以开发一个日期过滤器。

先自定义处理函数,然后通过add_template_filter添加自定义过滤器

复制代码
# 格式化下日期
def date_format(value, format="%Y年%m月%d日"):
    return value.strftime(format)


# 添加自定义过滤器
app.add_template_filter(date_format, "dateformat")

视图函数里面添加一个日期变量

复制代码
timeA = datetime.now()

student.html

复制代码
<h3>自定义过滤器</h3>
{{ timeA | dateformat }}

运行结果:

相关推荐
万粉变现经纪人2 小时前
如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘tokenizers’ 问题
python·selenium·测试工具·scrapy·beautifulsoup·fastapi·pip
编程武士4 小时前
从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
人工智能·python·yolo·性能优化
我的xiaodoujiao4 小时前
Windows系统Web UI自动化测试学习系列2--环境搭建--Python-PyCharm-Selenium
开发语言·python·测试工具
傻啦嘿哟6 小时前
Python SQLite模块:轻量级数据库的实战指南
数据库·python·sqlite
Q_Q5110082857 小时前
python+django/flask+uniapp基于微信小程序的瑜伽体验课预约系统
spring boot·python·django·flask·uni-app·node.js·php
XueminXu7 小时前
Python读取MongoDB的JSON字典和列表对象转为字符串
python·mongodb·json·pymongo·mongoclient·isinstance·json.dumps
techdashen7 小时前
12分钟讲解Python核心理念
开发语言·python
jie*7 小时前
小杰机器学习(nine)——支持向量机
人工智能·python·机器学习·支持向量机·回归·聚类·sklearn
闭着眼睛学算法7 小时前
【华为OD机考正在更新】2025年双机位A卷真题【完全原创题解 | 详细考点分类 | 不断更新题目 | 六种主流语言Py+Java+Cpp+C+Js+Go】
java·c语言·javascript·c++·python·算法·华为od
郝学胜-神的一滴7 小时前
谨慎地迭代函数所收到的参数 (Effective Python 第31条)
开发语言·python·程序人生·软件工程