SQLAlchemy 是一种对象关系映射模型(Object Relational Mapper), 简称ORM。
它展现了一种将用户定义的python中的类映射到数据库中表的方法。类的实例,就相当于表中的一行数据。简单来说呢, 就是让我们从SQL语句中抽离出来,只需要按照python的语法来写, 它会自动转换为相对应的SQL语句。SQLAlchemy 仅仅是python的orm框架中的一种实现。
SQLAlchemy的使用
1. 所有的数据库操作, 我们首先要创建一个连接。 告诉我们的代码, 连接到我们数据库的路径。
create_engine的可选参数很多, 有几个比较常用的。
echo: True的时候,会打印所有的状态变化, 包括转换的SQL语句。
max_overflow : 允许连接到数据库的最大连接数.
2. 然后创建一个声明类,映射类到表的关系。
declarative_base()构造一个自定义的声明的类,调用这个方法, 可以产生一个基类。这个基类,和它的子类,可以通过接受到的数据呢, 映射成一张表。所以, 如果我们要操作数据库中的表, 我们都必须继承这个基类。
3. 数据库中的表
每个类一定要有__tablename__ 也就是一定要有表名。
Column : 代表数据表中的一列。
它的常用参数有:
autoincrement : 表示字段是自增的。
index : 设置这个字段为索引。
primary_key : 设置此字段为主键。
然后把表格创建出来就行拉。
4 . 创建数据表
这样就可以根据我们之前的定义的元数据, 创建出我们要的数据表啦。
元数据其实就是描述数据的数据。我们要告诉计算机, 我要的表叫什么名字, 在哪个数据库, 你可以怎么连接它。这些就是元数据啦。
5 . 插入数据
首先, 我们可以根据字面意思看到。会话制造工厂。然后实例了session。sessionmaker 是一个可以不断产生新会话的类。
在sqlaAlchemy中, 我们通过create_engine 建立连接, 通过会话来建立自己代码与数据库的通信(其实, 和游标的作用很相似)。
首先写入一行的数据item、插入数据add()、提交数据commit()、关闭连接close()。这样就完成了数据的插入啦。
6 . 查询数据
- query.all(),all()返回列表
- query.first():返回第一个元素
- query.one()有且只有一个元素时才正确返回。
如果我们只想要查询其中几个字段;
也可以查询的字段中过滤id大于100的信息;
查询所有信息中其他信息的所有信息;
filter_by :可以通过列表做一些简单的查询。
filter :可以做filter_by做的事情, 同时它还能兼容一些sql的语法。
filter 中的>, 这意味着它接受可选数量的表达式,你可使用sql表达式或者keyword表达式。
filter_by 中是 = 接受的是一个关键字