方向不对,努力白费,经验类测试技术才是职场重要保险! | (点击→)【提醒】AI赋能的前提是对常规测试技术非常的熟悉,联系作者vx了解

FastAPI系列(14):Jinja2模板语法之过滤器

 

本系列汇总,请查看这里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

 

posted @ 2026-01-26 20:54  全栈测试笔记  阅读(9)  评论(0)    收藏  举报
浏览器标题切换
浏览器标题切换end