SqlAlchemy是1个支持连接各种不同数据库的Python库,提供DBAPI
与ORM
(object relation mapper)两种方式使用数据库。
DBAPI方式,即使用SQL方式访问数据库
ORM, 对象关系模型,是用 Python 类对象映射 Database表的一种方式。
官方文档:
https://docs.sqlalchemy.org/en/20/intro.html
SQLAlchemy 是由Core 与 ORM层组成, 在Core层,提供了Engine对象与数据库API交互,而SQL Expression Language 是对 Sql 语句的封装,用以消除各数据API之间的差异,实现1套接口适用于所有数据库。
ORM 是在Core之上的抽象层,其更符合面向对象编程的思路,
在Core层,可以使得DB API 直接操作数据库,也可以使用SQL Expression Language. 这是SqlAlchemy 提供的SQL表达式封装器。该接口层使用接近于原生SQL,更方便python编程。
Object Relation Mapping (ORM)是用Python 对象映射到Database表的一种方法。SqlAlchemy 的ORM有点类似于Hibernate。
数据库的二维表数据,可以用Python list类型表示,使用 [tuple, …] 形式,如下
[
('1', 'Michael'),
('2', 'Bob'),
('3', 'Adam')
]
使用 mysql-connector, sqlite3返回的数据结构就是像上面这样表示的。
而在ORM中,通过定义1个class,来表示db table的结构,
class User(object):
def __init__(self, id, name):
self.id = id
self.name = name
每行数据是该类的1个实例对象, 这样1个table就可以用class + object list 来表示,这就是ORM (Object-Relational Mapping)的原理。
SqlAlchemy 使用了很多专用术语与名词,下面列出常用的术语及解释,可以帮助看懂官方文档。
SELECT id, (SELECT name FROM address WHERE address.user_id=user.id)
FROM user
1)安装
安装 sqlalchemy 库
pip install sqlalchemy
安装数据库驱动库,如安装mysql接口库:mysql-connector ,
pip3 install mysql-connector
Python3已内置 sqlite3 库,可以直接使用
2)验证安装是否成功
打开终端窗口,输出python,进入命令行模式,查看是否能成功显示版本号。
>>> import sqlalchemy
>>>sqlalchemy.__version__
'1.2.7'