fastapi使用模板
时间: 2023-09-26 22:14:24 浏览: 51
FastAPI 是一个高性能的 Web 框架,它支持使用 Jinja2、Mako、Handlebars 等多种模板引擎,可以方便地渲染 HTML 页面。
下面以 Jinja2 为例,介绍在 FastAPI 中如何使用模板。
首先,你需要安装 Jinja2:
```
pip install Jinja2
```
然后,在你的 FastAPI 应用程序中,创建一个 templates 目录,用于存放 HTML 模板文件。
在模板文件中,可以使用 Jinja2 的语法来定义变量、循环、条件等等。
例如,创建一个名为 index.html 的模板文件,内容如下:
```
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>{{ message }}</h1>
</body>
</html>
```
在上面的模板中,使用了两个变量 `title` 和 `message`,它们的值将在渲染模板时动态传入。
接下来,在 FastAPI 应用程序中,使用 `Jinja2Templates` 类来加载模板文件,并渲染模板。
```
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 index(request: Request):
context = {"title": "FastAPI", "message": "Hello, world!"}
return templates.TemplateResponse("index.html", {"request": request, "context": context})
```
在上面的代码中,`Jinja2Templates` 类被用来加载 templates 目录中的模板文件。在 index 路由中,`TemplateResponse` 类被用来渲染模板,并向模板传递变量 `context`。
最后,启动 FastAPI 应用程序,访问 http://localhost:8000/ 将看到渲染后的 HTML 页面。
以上就是在 FastAPI 中使用 Jinja2 模板的基本流程。你可以根据自己的需要,选择合适的模板引擎来渲染 HTML 页面。