fastapi 有没有比较简单的ORM封装
-
FastAPI 本身是一个高性能的 Web 框架,专注于快速开发 APIs,并不直接提供 ORM(对象关系映射)功能。不过,它设计得足夜以支持各种异步数据库库以及同步的 ORM 库。在 FastAPI 应用中集成 ORM 库可以简化数据库操作,提高开发效率。以下是一些与 FastAPI 结合使用较为简单且流行的 ORM 解决方案:
SQLAlchemy: SQLAlchemy 是 Python 中最流行的 ORM 库之一,提供了全面的数据库操作能力。对于 FastAPI,你可以使用 SQLAlchemy 来进行数据库模型的定义和操作。SQLAlchemy 有两个主要的组件:Core(提供了与数据库的交互功能)和 ORM(提供了对象到数据库表的映射)。尽管 SQLAlchemy 本身不是异步的,但它有一个名为 sqlalchemy.ext.asyncio 的扩展,可以支持异步数据库操作。
Tortoise ORM: Tortoise ORM 是一个简单易用的异步 ORM 库,专为 Python 异步框架设计,非常适合与 FastAPI 一起使用。它支持多种数据库,如 SQLite, PostgreSQL, MySQL 等。Tortoise ORM 强调简单性和直观性,让开发者可以轻松定义数据模型,并进行异步的数据库操作。
Databases: databases 是一个轻量级的异步数据库访问库,虽然它不是一个完整的 ORM 库,但提供了异步支持。它可以与 SQLAlchemy Core 结合使用,以异步方式执行查询。如果你倾向于使用 SQLAlchemy 定义模型,但又希望进行异步数据库操作,这是一个不错的选择。
ORM: orm 是一个轻量级且简单的异步 ORM 库,它支持 asyncio 并与异步数据库驱动程序(如 databases)一起工作。orm 库专为简单性设计,如果你的项目不需要 SQLAlchemy 那样的复杂功能,这个库可能是一个好选择。
在选择 ORM 时,你应该考虑项目的具体需求,比如是否需要异步支持、数据库的类型、以及你对 ORM 复杂度的容忍度。上述提到的每个库都有各自的文档和教程,建议深入阅读它们以便根据自己的项目需求做出选择。