Python 中如何使用 SQLAlchemy 操作 MySQL 数据库?

2023-04-04 00:00:00 数据库 操作 如何使用

要使用 SQLAlchemy 操作 MySQL 数据库,需要按照以下步骤进行操作:
1. 安装 SQLAlchemy 和 MySQL 驱动程序(例如 pymysql 或 mysql-connector-python)。
2. 使用 SQLAlchemy 创建一个 Engine 对象,用于连接到 MySQL 数据库。可以使用以下代码创建 Engine 对象:

from sqlalchemy import create_engine
engine = create_engine('mysql+pymysql://username:password@host:port/database_name')

其中,usernamepassword 是 MySQL 数据库的用户名和密码,host 是 MySQL 服务器的主机名或 IP 地址,port 是 MySQL 服务器的端口号,database_name 是要连接的数据库的名称。
3. 使用 Engine 对象创建一个会话(Session)对象,用于执行数据库操作。可以使用以下代码创建 Session 对象:

from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
  1. 使用 Session 对象执行各种数据库操作(例如插入、更新、删除和查询)。例如,要向名为 user 的表中插入一个新用户,可以使用以下代码:
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class User(Base):
    __tablename__ = 'user'
    id = Column(Integer, primary_key=True)
    name = Column(String(50), nullable=False)
    email = Column(String(120), unique=True, nullable=False)
new_user = User(name='Alice', email='alice@example.com')
session.add(new_user)
session.commit()

在这个例子中,使用 SQLAlchemy 的 ORM 功能定义了一个名为 User 的类,该类映射到名为 user 的数据库表。User 类具有 idnameemail 三个属性,分别映射到表中的三个列。创建一个新的 User 实例,并使用 add() 方法将其添加到当前会话中,然后使用 commit() 方法提交更改。
5. 最后,使用 Session 对象的 query() 方法执行查询语句,并使用 all()first()one() 等方法获取查询结果。例如,可以使用以下代码查询名为 Alice 的用户的电子邮件地址:

alice = session.query(User).filter_by(name='Alice').first()
print(alice.email)

在这个例子中,使用 Session 对象的 query() 方法查询名为 Alice 的用户,使用 filter_by() 方法过滤结果,然后使用 first() 方法获取第一个结果(如果存在)。最后,打印结果对象的 email 属性。
以上就是在 Python 中使用 SQLAlchemy 操作 MySQL 数据库的基本步骤。除了上述操作之外,SQLAlchemy 还提供了丰富的功能和 API,用于处理各种数据库操作,例如自定义查询、事务管理、数据验证等等。

相关文章