jinji2模板

jinjia2模板

jinja2的变量

Jinja2是一个流行的Python模板引擎,用于生成动态HTML页面。在FastAPI中,可以使用Jinja2Templates类来处理动态文件的请求。

python 复制代码
from fastapi import FastAPI
import uvicorn
from fastapi.templating import Jinja2Templates
from fastapi import Request

app=FastAPI()
templates=Jinja2Templates(directory="templates")

@app.get("/index")
async def index(request: Request):
  
    user = {
        "name": "liu",
        "age": 18,
        "gender": "male",
    }
    books=["Python基础","FastAPI","数据分析","机器学习","深度学习"]
    return templates.TemplateResponse(
        "index.html",#模板文件
        {
            "request": request,
            "user": user,
            "books": books
        }#context上下文,一个字典
    )

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

jinja2的过滤器

过滤器用于对变量进行格式化或转换操作,常见的过滤器有**upper(转为大写)、lower(转为小写)、title(转为标题格式)、length(获取长度)、capitalize(首字母大写)、trim(去除空白)、round(四舍五入)**等。用法是在变量后面加上管道符 |,然后跟上过滤器名称。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Jinja2过滤器示例</title>
</head>
<body>
    <h1>Jinja2过滤器示例</h1>
    <p>原始字符串: {{ user.name }}</p>
    <p>大写: {{ user.name | upper }}</p>
    <p>小写: {{ user.name | lower }}</p>
    <p>标题格式: {{ user.name | title }}</p>
    <p>长度: {{ user.name | length }}</p>
    <p>首字母大写: {{ user.name | capitalize }}</p>
    <p>去除空白: '{{ "   Hello World!   " | trim }}'</p>
    <p>四舍五入: {{ 3.14159 | round(2) }}</p>
</body>
</html>

jinja2的控制结构

1.分支控制

Jinja2提供了**if语句**来实现条件分支控制,可以根据不同的条件渲染不同的内容。

html 复制代码
{% if user.age >= 18 %}
    <p>{{ user.name }}是成年人。</p>
{% else %}
    <p>{{ user.name }}是未成年人。</p>
{% endif %}
2.循环控制

Jinja2提供了**for语句**来实现循环控制,可以遍历列表或字典等可迭代对象。

html 复制代码
<ul>
    {% for book in books %}
        <li>{{ book }}</li>
    {% endfor %}
</ul>
相关推荐
曲幽10 小时前
FastAPI分布式系统实战:拆解分布式系统中常见问题及解决方案
redis·python·fastapi·web·httpx·lock·asyncio
曲幽1 天前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
曲幽2 天前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img
曲幽3 天前
我用FastAPI接ollama大模型,差点被asyncio整崩溃(附对话窗口实战)
python·fastapi·web·async·httpx·asyncio·ollama
闲云一鹤4 天前
Python 入门(二)- 使用 FastAPI 快速生成后端 API 接口
python·fastapi
曲幽4 天前
FastAPI + Ollama 实战:搭一个能查天气的AI助手
python·ai·lora·torch·fastapi·web·model·ollama·weatherapi
百锦再5 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
Li emily5 天前
解决了股票实时数据接口延迟问题
人工智能·fastapi
司徒轩宇6 天前
FastAPI + Uvicorn 深度理解与异步模型解析
fastapi
郝学胜-神的一滴6 天前
FastAPI:Python 高性能 Web 框架的优雅之选
开发语言·前端·数据结构·python·算法·fastapi