如何从 pydantic 模型自动创建 html 表单?

use*_*008 5 python pydantic fastapi

有没有办法从 pydantic 模型创建 Html 表单?

让我们从一个简单的例子开始。我有一个模型User

from pydantic import BaseModel

class User(BaseModel):
    id: int
    name: str = 'Jane Doe'
Run Code Online (Sandbox Code Playgroud)

以及一些将User模型转换为以下形式的神奇函数:

<form>
  <label for="id">ID:</label><br>
  <input type="number" id="id" name="id"><br>
  <label for="name">Name:</label><br>
  <input type="text" id="name" name="name">
</form>
Run Code Online (Sandbox Code Playgroud)

当然,这可以是任意复杂的,例如当您的模型具有List可能是下拉选择字段的 s 时。

所以我很感兴趣这是否已经可能?我将在 FastAPI 的上下文中使用它。

thi*_*ord -1

您正在寻找模板引擎。Jinja是一个非常受欢迎的。

FastAPI 文档中还有一整章关于Jinja 模板化的内容。

这允许您指定包含类似 python 语法的 html 模板来构建您想要的内容。您可以传入任何数据模型并在模板内引用它。