ORM
ORM
(Object Relational Mapper)框架。
类: 表
对象: 行
ORM分类
DB first
:- 手动创建数据库和表 => ORM框架 => 自动生成类
code first
:- 手动创建数据库和类 => ORM框架 => 自动生成表
PS: Django
支持 DB first 和 code first
SQLAlchemy
SQLAlchemy
属于 code first
作用
- 提供简单的规则
- 自动转换成SQL语句
- SQLAlchemy 本身是无法操作数据库的,它只是将类和对象转换成SQL语句。
SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。
SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。因此,SQLAlchemy采用了类似于Java里Hibernate的数据映射模型,而不是其他ORM框架采用的Active Record模型。不过,Elixir和declarative等可选插件可以让用户使用声明语法。
SQLAlchemy首次发行于2006年2月,并迅速地在Python社区中最广泛使用的ORM工具之一,不亚于Django的ORM框架。
SQLAlchemy基本执行流程
- 使用
sqlalchemy
对象提交命令 - 将命令交给
sqlalchemy core
( schema/types sql expression language)
转换成sql
- 使用配置好的
engine
从connectionpooling
中拿出一个链接,
基于该链接使用dialect
调用DB API
,将sql交给它去执行