当前位置: 首页> 房产> 市场 > ORM工具之SQLAlchemy

ORM工具之SQLAlchemy

时间:2025/7/11 15:34:19来源:https://blog.csdn.net/youziguo/article/details/140922571 浏览次数:0次

SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。

SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchemy采用了类似于Java里Hibernate的数据映射模型,而不是其他ORM框架采用的Active Record模型。不过,Elixir和declarative等可选插件可以让用户使用声明语法。

SQLAlchemy首次发行于2006年2月,并迅速地在Python社区中成为广泛使用的ORM工具之一,不亚于Django的ORM框架。

核心组件

1. SQLAlchemy Core

SQLAlchemy Core 是 SQLAlchemy 的核心,它提供了一种 SQL 表达语言(SQL Expression Language)和一个数据库引擎。SQL Expression Language 允许用户使用 Python 代码来构建 SQL 语句,而数据库引擎则负责与数据库的连接和执行 SQL 语句。

核心概念
  • Engine:表示与特定数据库的连接,管理数据库连接池。
  • MetaData:持有一组表的描述,包括表名、列、数据类型等。
  • Table:表示数据库中的一个表。
  • Column:表示表中的一个列。
  • SQL Expression Language:允许用户使用 Python 代码来构建 SQL 语句。

2. SQLAlchemy ORM

SQLAlchemy ORM 提供了一种高层次的对象关系映射,它使得开发者可以将数据库表映射为 Python 类,并使用 Python 类和对象来进行数据库操作。

核心概念
  • Declarative System:允许用户使用 Python 类定义数据库表和映射关系。
  • Session:负责所有与数据库的交互,它是 ORM 操作的主要入口。
  • Query:提供了一种查询接口,允许用户使用 Python 表达式来构建 SQL 查询。

使用示例

1. 安装 SQLAlchemy

你可以使用 pip 安装 SQLAlchemy:

pip install sqlalchemy

2. 使用 SQLAlchemy Core

from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String# 创建数据库引擎
engine = create_engine('sqlite:///example.db', echo=True)# 创建 MetaData 实例
metadata = MetaData()# 定义表
user_table = Table('user', metadata,Column('id', Integer, primary_key=True),Column('name', String),Column('age', Integer)
)# 创建表
metadata.create_all(engine)# 插入数据
with engine.connect() as connection:connection.execute(user_table.insert(), [{'name': 'Alice', 'age': 25},{'name': 'Bob', 'age': 30}])# 查询数据
with engine.connect() as connection:result = connection.execute(user_table.select())for row in result:print(row)

3. 使用 SQLAlchemy ORM

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker# 创建数据库引擎
engine = create_engine('sqlite:///example.db', echo=True)# 创建 Base 类
Base = declarative_base()# 定义映射类
class User(Base):__tablename__ = 'user'id = Column(Integer, primary_key=True)name = Column(String)age = Column(Integer)# 创建表
Base.metadata.create_all(engine)# 创建 Session 类
Session = sessionmaker(bind=engine)
session = Session()# 插入数据
new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()# 查询数据
users = session.query(User).all()
for user in users:print(user.name, user.age)

总结

SQLAlchemy 是一个功能强大且灵活的库,适用于不同规模的应用程序。它提供了两种主要的编程接口:SQLAlchemy Core 和 SQLAlchemy ORM,分别适用于不同的开发需求。SQLAlchemy Core 适合需要直接操作 SQL 语句的场景,而 SQLAlchemy ORM 则适合需要将数据库表映射为 Python 类进行操作的场景。

关键字:ORM工具之SQLAlchemy

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: