fastapi - 对于创建操作,使用表单数据,但在 Tortoise ORM 文档中他们使用 JSON,最佳实践是什么?
问题描述
我正在尝试使用 FastAPI 和 Tortoise ORM 制作一个 Web App 项目
我想创建一个用户(注册),主要数据是前端发送的表单数据,FastAPI 文档确实告诉我们如何处理表单数据。
但是 Tortoise ORM 文档中的示例(FastAPI 示例)使用简单的 JSON 数据。
最佳做法是什么,我应该怎么做?
- 链接到 Tortoise ORM 和 FastAPI 示例:https ://tortoise-orm.readthedocs.io/en/latest/examples/fastapi.html#main-py
PS:只是一个建议,我应该使用 Tortoise ORM 还是切换到另一个 ORM,因为 Tortoise 仍然是一个年轻的项目(请同时考虑我应该考虑哪个其他 ORM)
如果我写错了,请原谅我是网络开发的新手。
感谢您的时间和帮助。
解决方案
您使用 Form 还是 JSON 取决于您的数据是从哪个上下文提交的。如果它是从常规网络表单提交的(即form
作为 POST 操作提交),它将是表单数据。如果您正在使用前端框架或设计以编程方式使用的 API,那么使用 JSON 通常会更容易且更具表现力。两者都不是“更好”(尽管纯格式数据不能像 JSON 那样容易地表达层次结构),但这取决于上下文。
乌龟ORM应该没问题;它很受欢迎。其他选项是 SQLAlchemy、orm,或者可能是 SQLModel——它是由 FastAPI 的作者在 SQLAlchemy 之上构建的新 orm——设计用于 FastAPI。
推荐阅读
- blazor - Blazer 服务器:设置 Braintree Payment Javascript 和 .NET SDK 和 API
- kubernetes - kubernetes 是否会重新调整 pod 以利用资源?
- vim - vim 失去颜色方案切换语法
- neural-network - 是否可以加载使用 model.module.state_dict() 存储但使用 model.state_dict() 加载的模型
- c - 寻找辅因子矩阵
- razor - 来自项目列表的 google.visualization.AnnotatedTimeLine
- kubernetes - 不会过期的 Vault 令牌
- php - 按日期时间顺序排列
- javascript - 如何在javascript中获取数字的浮动值?
- indexing - 在 Azure CosmosDB 中存储和查询 DateTime 的最佳方式