FastAPI 中如何在模板中传递数据?

· 约 3 分钟读完 · 第 47 / 128 章

推荐答案

在 FastAPI 中,可以通过以下步骤在模板中传递数据:

  1. 使用 Jinja2Templates 渲染模板:首先,确保你已经安装了 Jinja2 模板引擎,并在 FastAPI 应用中配置了模板目录。

  2. 传递数据到模板:在路由处理函数中,使用 templates.TemplateResponse 方法渲染模板,并通过 context 参数传递数据。

  1. 在模板中使用数据:在模板文件(如 index.html)中,使用 Jinja2 语法访问传递的数据。

本题详细解读

1. 模板引擎的选择

FastAPI 默认不包含模板引擎,但推荐使用 Jinja2 作为模板引擎。Jinja2 是一个功能强大且灵活的模板引擎,广泛用于 Python Web 开发。

2. 配置模板目录

在使用 Jinja2Templates 时,需要指定模板文件所在的目录。通常,模板文件会放在项目根目录下的 templates 文件夹中。

3. 传递数据到模板

在路由处理函数中,通过 templates.TemplateResponse 方法渲染模板,并通过 context 参数传递数据。context 是一个字典,其中可以包含任意数量的键值对。

4. 在模板中使用数据

在模板文件中,使用 {{ }} 语法来访问传递的数据。例如,{{ data.name }} 会输出 data 字典中 name 键对应的值。

5. 请求对象的作用

在 TemplateResponse 中,request 对象是必须传递的,因为模板引擎需要它来生成 URL 和其他与请求相关的信息。

通过以上步骤,你可以在 FastAPI 中轻松地将数据传递到模板,并在模板中使用这些数据来动态生成 HTML 页面。