SQLAlchemy
是 Python 中一个强大且灵活的 SQL 工具包和对象关系映射(ORM)库,它为使用不同数据库(如 MySQL、PostgreSQL、SQLite 等)提供了统一的接口。以下是关于 SQLAlchemy
的详细介绍:
安装
你可以使用 pip
来安装 SQLAlchemy
:
pip install sqlalchemy
基本使用
1. 连接数据库
以 SQLite 为例,以下是连接数据库的代码:
from sqlalchemy import create_engine
# 创建一个 SQLite 数据库引擎
engine = create_engine('sqlite:///example.db')
2. 定义模型
使用 SQLAlchemy 的 ORM 功能定义一个简单的表模型:
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
# 创建基类
Base = declarative_base()
# 定义一个 User 类,继承自 Base
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
def __repr__(self):
return f"<User(name='{self.name}', age={self.age})>"
3. 创建表
使用定义好的模型创建数据库表:
# 创建所有表
Base.metadata.create_all(engine)
4. 插入数据
向 users
表中插入一条数据:
from sqlalchemy.orm import sessionmaker
# 创建会话工厂
Session = sessionmaker(bind=engine)
# 创建会话实例
session = Session()
# 创建一个新的 User 对象
new_user = User(name='John', age=30)
# 将新用户添加到会话中
session.add(new_user)
# 提交会话,将数据插入数据库
session.commit()
5. 查询数据
从 users
表中查询数据:
# 查询所有用户
users = session.query(User).all()
for user in users:
print(user)
# 根据条件查询用户
john = session.query(User).filter_by(name='John').first()
print(john)
6. 更新数据
更新 users
表中的数据:
# 查询要更新的用户
user_to_update = session.query(User).filter_by(name='John').first()
# 更新用户的年龄
user_to_update.age = 31
# 提交会话,将更新保存到数据库
session.commit()
7. 删除数据
从 users
表中删除数据:
# 查询要删除的用户
user_to_delete = session.query(User).filter_by(name='John').first()
# 从会话中删除用户
session.delete(user_to_delete)
# 提交会话,将删除操作保存到数据库
session.commit()
总结
SQLAlchemy
提供了强大的 ORM 功能,使得在 Python 中操作数据库变得更加方便和高效。通过定义模型类,你可以将数据库表映射为 Python 类,从而使用面向对象的方式操作数据库。同时,SQLAlchemy 也支持原生 SQL 查询,让你在需要时可以直接执行 SQL 语句。