FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,它基于标准 Python 类型提示。FastAPI 支持异步编程,使得开发高性能的 Web 应用变得简单快捷。在本文中,我们将探讨如何使用 FastAPI 结合 Jinja2 模板引擎来创建动态 Web 应用。
Jinja2 模板引擎
Jinja2 是一个非常流行的模板引擎,它可以让你用变量替代模板中的占位符,生成动态的 HTML 页面。它被广泛用于 Web 应用中,以生成用户界面。
安装依赖
在开始之前,确保你已经创建并激活了一个虚拟环境,然后安装 Jinja2:
pip install jinja2
使用 Jinja2Templates
FastAPI 允许你使用任何模板引擎,但 Jinja2 是一个常见的选择。以下是如何在 FastAPI 应用中集成 Jinja2 的步骤:
-
导入 Jinja2Templates:
from fastapi import FastAPI, Request from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates
-
创建 templates 对象:
app = FastAPI() app.mount("/static", StaticFiles(directory="static"), name="static") templates = Jinja2Templates(directory="templates")
-
定义路由和视图函数:
@app.get("/items/{id}", response_class=HTMLResponse) async def read_item(request: Request, id: str): return templates.TemplateResponse(request=request, name="item.html", context=