推荐答案
在 FastAPI 中使用 Jinja2 模板引擎可以通过以下步骤实现:
安装依赖:首先需要安装
jinja2包。pip install jinja2
配置 Jinja2 模板引擎:在 FastAPI 应用中配置 Jinja2 模板引擎。
// www.javascriptcn.com code example from fastapi import FastAPI, Request from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates app = FastAPI() # 配置模板目录 templates = Jinja2Templates(directory="templates") @app.get("/", response_class=HTMLResponse) async def read_root(request: Request): return templates.TemplateResponse("index.html", {"request": request, "message": "Hello, World!"})创建模板文件:在
templates目录下创建index.html文件。// www.javascriptcn.com code example <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>FastAPI with Jinja2</title> </head> <body> <h1>{{ message }}</h1> </body> </html>运行 FastAPI 应用:启动 FastAPI 应用并访问
http://127.0.0.1:8000/,你将看到渲染后的 HTML 页面。
本题详细解读
1. 安装依赖
Jinja2 是一个流行的 Python 模板引擎,用于生成 HTML、XML 或其他标记语言。在使用 Jinja2 之前,需要先安装它。
pip install jinja2
2. 配置 Jinja2 模板引擎
在 FastAPI 中,可以使用 fastapi.templating.Jinja2Templates 来配置 Jinja2 模板引擎。Jinja2Templates 类需要一个 directory 参数,指定模板文件所在的目录。
templates = Jinja2Templates(directory="templates")
3. 创建模板文件
模板文件通常放在 templates 目录下。在模板文件中,可以使用 Jinja2 的语法来动态生成内容。例如,index.html 文件中使用了 {{ message }} 来显示从视图函数传递过来的变量。
// www.javascriptcn.com code example
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>FastAPI with Jinja2</title>
</head>
<body>
<h1>{{ message }}</h1>
</body>
</html>4. 渲染模板
在 FastAPI 的视图函数中,可以使用 templates.TemplateResponse 方法来渲染模板。该方法需要两个参数:模板文件名和一个包含模板变量的字典。
@app.get("/", response_class=HTMLResponse)
async def read_root(request: Request):
return templates.TemplateResponse("index.html", {"request": request, "message": "Hello, World!"})5. 运行应用
启动 FastAPI 应用后,访问 http://127.0.0.1:8000/,你将看到渲染后的 HTML 页面,页面中显示 Hello, World!。
通过以上步骤,你可以在 FastAPI 中成功使用 Jinja2 模板引擎来渲染动态 HTML 页面。