fastapi常用ORM
时间: 2023-07-26 11:04:04 浏览: 312
FastAPI 是一个现代化的 Web 框架,它没有自带的 ORM,但可以很方便地与其他 ORM 库集成。以下是一些常用的 ORM 库:
1. SQLAlchemy:一个功能强大的 ORM 库,可以与各种关系型数据库集成,支持多种查询语言。
2. Tortoise ORM:一个异步 ORM 库,支持异步 I/O 操作,可以与 asyncpg、aiosqlite、aiomysql 等异步数据库集成。
3. Pony ORM:一个轻量级 ORM 库,支持 SQLite、MySQL、PostgreSQL 等多种关系型数据库,使用起来非常简单。
4. Peewee:一个简单易用的 ORM 库,支持 SQLite、MySQL、PostgreSQL 等多种关系型数据库,使用起来非常方便。
5. ORMar:一个基于 SQLAlchemy 的 ORM 库,使用 Pydantic 模型定义数据模型,支持 SQLite、MySQL、PostgreSQL 等多种关系型数据库。
以上是常用的 ORM 库,根据项目的需求和个人喜好选择合适的库即可。
相关问题
fastapi orm对接mysql
FastAPI是一个轻量级的Web框架,它本身并不直接提供ORM(Object-Relational Mapping,对象关系映射)功能。然而,你可以选择与FastAPI结合使用的第三方库,如SQLAlchemy或Peewee等,它们都支持ORM,可以方便地操作MySQL数据库。
以SQLAlchemy为例,它是Python中最常用的ORM工具之一,用于在Python应用中轻松处理数据库操作。以下是使用SQLAlchemy和FastAPI对接MySQL的一般步骤:
1. 安装依赖:首先安装`sqlalchemy`, `fastapi`, 和 `asyncio-sqlalchemy`(如果你的应用基于异步I/O)。
```bash
pip install sqlalchemy fastapi uvicorn[standard]
```
2. 配置数据库连接:在你的FastAPI项目中设置数据库连接配置,比如通过环境变量或配置文件。
```python
from sqlalchemy import create_engine
DATABASE_URL = "postgresql://username:password@localhost/dbname"
engine = create_engine(DATABASE_URL)
```
3. 创建数据模型:定义代表数据库表的Python类,这将自动创建相应的数据库表格。
```python
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String, unique=True)
```
4. ORM映射到路由:使用FastAPI的`Depends`函数获取数据库连接,并在需要的地方使用SQLAlchemy进行查询、插入、更新和删除操作。
```python
from fastapi import FastAPI, Depends
from sqlalchemy.orm import Session
app = FastAPI()
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.get("/users")
async def read_users(db: Session = Depends(get_db)):
return db.query(User).all()
```
fastapi 常用库
以下是FastAPI常用的库:
1. uvicorn:一个快速的ASGI服务器,用于在生产环境中运行FastAPI应用程序。
2. pydantic:用于数据验证和序列化的Python库,FastAPI使用它来解析请求体和查询参数。
3. SQLAlchemy:一个流行的Python ORM,用于与数据库交互。FastAPI提供了一个SQLAlchemy扩展,使得在FastAPI应用程序中使用SQLAlchemy变得更加容易。
4. Tortoise-ORM:一个异步ORM,用于与异步数据库交互。FastAPI提供了一个Tortoise-ORM扩展,使得在FastAPI应用程序中使用Tortoise-ORM变得更加容易。
5. JWT:JSON Web Tokens,用于身份验证和授权。FastAPI提供了一个JWT扩展,使得在FastAPI应用程序中使用JWT变得更加容易。
6. FastAPI-Admin:一个基于FastAPI和Vue.js的管理界面框架,用于快速构建管理界面。
阅读全文