FastAPI 使用SQLAlchemy 连接MySQL

在开发Web应用程序时,使用Python的FastAPI框架和SQLAlchemy库可以轻松地连接和操作MySQL数据库。FastAPI是一个现代的Web框架,它提供了快速的API开发和自动文档生成功能。SQLAlchemy是一个强大的ORM库,可以帮助我们轻松地与数据库进行交互。

步骤一:安装FastAPI和SQLAlchemy

首先,我们需要安装FastAPI和SQLAlchemy库。你可以使用以下命令来安装这两个库:

pip install fastapi
pip install sqlalchemy
pip install mysqlclient

步骤二:创建数据库连接

接下来,我们需要创建一个数据库连接。我们可以使用SQLAlchemy的create_engine函数来连接到MySQL数据库。在这个示例中,我们假设有一个名为test_db的数据库,用户名为root,密码为空。

from sqlalchemy import create_engine

db_url = "mysql://root:@localhost/test_db"
engine = create_engine(db_url)

步骤三:定义数据模型

然后,我们需要定义数据模型,即数据库中的表格结构。我们可以使用SQLAlchemy的declarative_base类来定义数据模型。

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

步骤四:创建数据表

接下来,我们需要使用create_all函数来创建数据库中的数据表。

Base.metadata.create_all(engine)

步骤五:操作数据库

现在,我们可以使用FastAPI来操作数据库。以下是一个简单的示例,创建一个用户并将其添加到数据库中。

from fastapi import FastAPI
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import Session

app = FastAPI()

SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)

def get_db():
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()

@app.post("/users/")
def create_user(name: str, age: int, db: Session = Depends(get_db)):
    user = User(name=name, age=age)
    db.add(user)
    db.commit()
    return {"name": name, "age": age}

总结

通过上述步骤,我们可以轻松地使用FastAPI和SQLAlchemy连接和操作MySQL数据库。FastAPI提供了快速的API开发和文档生成功能,而SQLAlchemy则提供了强大的数据库交互功能。结合使用这两个库,我们可以更加高效地开发Web应用程序,并与MySQL数据库进行交互。

gantt
    title 数据库连接甘特图
    section 数据库连接
    创建数据库连接: done, 2022-01-01, 3d
    定义数据模型: done, after 创建数据库连接, 2d
    创建数据表: done, after 定义数据模型, 2d
    操作数据库: done, after 创建数据表, 2d

通过以上步骤和示例,希望读者能够掌握如何在FastAPI中使用SQLAlchemy来连接MySQL数据库,从而更加高效地开发Web应用程序。祝你编程愉快!