一周学会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 }}

运行结果:

相关推荐
小小张说故事6 分钟前
Seaborn 入门指南:让统计数据可视化更优雅
python·机器学习
小小张说故事7 分钟前
Transformers 入门指南:用 Python 调用预训练大模型
python·机器学习
小小张说故事7 分钟前
FastAPI 入门指南:用 Python 极速构建 API
python·机器学习
小小张说故事9 分钟前
pytest 入门指南:Python 自动化测试的标配工具
python·机器学习
用户8356290780519 分钟前
使用 Python 在 Excel 中添加和管理图片
后端·python
用户31693538118310 分钟前
SQLAlchemy 的两套 API
python
伞伞悦读10 分钟前
【第45期】一行 eval 做计算器的代价:Python 输入校验和可测试的猜数字
python
用户83562907805111 分钟前
Python 设置 Excel 单元格边框与样式
后端·python
10年前端老司机12 分钟前
LLM降本提速三档对比:无缓存、普通缓存、语义缓存(LangChain生产落地)
人工智能·python·langchain
用户2986985301412 分钟前
Python 文档格式转换实战:RTF 转 PDF 与 HTML
python·html·api