惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
Jina AI
Jina AI
雷峰网
雷峰网
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
美团技术团队
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
博客园 - Franky
博客园 - 三生石上(FineUI控件)
月光博客
月光博客
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
量子位
IT之家
IT之家
人人都是产品经理
人人都是产品经理
博客园_首页
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com

博客园 - 全栈测试笔记

博文阅读密码验证 - 博客园 FastAPI系列(24):ORM操作之删除接口开发 单例模式管理模型客户端的几种实现方式 博文阅读密码验证 - 博客园 FastAPI系列(23):ORM操作之编辑接口开发 FastAPI系列(22):ORM之多对多查询记录 FastAPI系列(21):ORM之多对多添加记录 CC Switch配置模型 Claude Code安装 FastAPI系列(20):ORM添加表记录 FastAPI系列(19):ORM响应页面数据 博文阅读密码验证 - 博客园 FastAPI系列(18):ORM查询操作 FastAPI系列(17):ORM的迁移命令 FastAPI系列(16):ORM创建模型类 FastAPI系列(15):Jinja2模板语法之控制结构 FastAPI系列(13):Jinja2模板介绍、模板语法之变量渲染 FastAPI系列(12):响应模型参数 【汇总】FastAPI系列教程
FastAPI系列(14):Jinja2模板语法之过滤器
全栈测试笔记 · 2026-01-26 · via 博客园 - 全栈测试笔记

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/19503695

 过滤器介绍及用法

变量可以通过“过滤器”进⾏修改,过滤器可以理解为是jinja2⾥⾯的内置函数和字符串处理函数。

常⽤的过滤器有:

过滤器名称说明
capitialize 把值的⾸字母转换成⼤写,其他⼦母转换为⼩写
lower 把值转换成⼩写形式
title 把值中每个单词的⾸字母都转换成⼤写
trim 把值的⾸尾空格去掉
striptags 渲染之前把值中所有的HTML标签都删掉
join 拼接多个值为字符串
round 默认对数字进⾏四舍五⼊,也可以⽤参数进⾏控制
safe 渲染时值不转义

过滤器使用方法:只需要在变量后⾯使⽤管道(|)分割,多个过滤器可以链式调⽤,前⼀个过滤器的输出会作为后⼀个过滤器的输⼊。

示例

image

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--首字母大写 -->
<p>user :{{ 'qzcsbj'|capitalize}}</p>
<!--把值中每个单词的⾸字母都转换成⼤写-->
<p>{{ 'hello qzcsbj'|title}}</p>
<!--替换-->
<p>{{ 'hello qzcsbj'|title|replace('Qzcsbj','全栈测试笔记')}}</p>
<!--大写-->
<p>user :{{ user|upper}}</p>
<!--展示3位小数-->
<p>{{num}}展示3位小数 :{{ num|round(3) }}</p>
<p>1.1236展示3位小数 :{{ 1.1236|round(3) }}</p>
<!--展示整数部分-->
<p> {{num}}的整数部分是:{{ num|round(3)|int }}</p>
<p>1.9999的整数部分是:{{ 1.9999|round(3)|int }}</p>

</body>
</html>

test_jinja2.py

import uvicorn
from fastapi import FastAPI, Request
from fastapi.templating import Jinja2Templates

app = FastAPI()

templates = Jinja2Templates(directory="templates")  # 实例化Jinja2对象,并将文件夹路径设置为以templates命令的文件夹


@app.get("/index")
def index(request: Request):  # TemplateResponse要求上下文包含Request类型的对象,这里需要传入
    name = "qzcsbj"
    num = 1.8999

    return templates.TemplateResponse(
        "index.html",  # 模板文件
        {
            "user": name,
            "num": num,
            "request": request,  # TemplateResponse要求上下文(context)中必须包含 "request" 键,value是Request类型对象
        },  # context上下文对象,一个字典
    )


if __name__ == '__main__':
    uvicorn.run("test_jinja2:app", port=8001, reload=True)

运行结果

image