fastapi: 第二十一章:输出html页面

一,安装jinja2模板引擎

$ pip install jinja2 python-multipart

创建模板文件目录templates,并把模板文件放到此目录下

image

二,代码:

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ title }}</title>
</head>
<body>
    <h1>Hello, {{ username }}!</h1>
    <p>Welcome to your FastAPI web application.</p>
</body>
</html>

python文件:

# app/api/users.py
from fastapi import APIRouter, Depends
from starlette.requests import Request
from starlette.templating import Jinja2Templates

from app.core.Settings import get_settings
from app.middleware.log_single_route import log_this_route

# 创建路由器实例
# prefix:所有路由的统一前缀,避免重复写"/users"
# tags:在Swagger文档中分组显示
router = APIRouter(prefix="/users", tags=["用户管理"])

# Point to your local templates directory
templates = Jinja2Templates(directory="app/templates")

@router.get("/one")
def get_user(request: Request,user_id: int = 1,name: str = None):
    """根据ID获取单个用户"""
    #return {"id": user_id, "name": f"用户{name}"}
    return templates.TemplateResponse(
        request = request,
        name="user_all.html",
        context={"username": "谢广坤", "title": "象牙山村委会"}
    )

三,测试效果:

image

 

posted @ 2026-06-12 10:52  刘宏缔的架构森林  阅读(3)  评论(0)    收藏  举报