SQLAlchemy是一个流行的开源代码库,功能强大又相当灵活,能够帮助Python程序员使用各种关系型数据库,许多公司甚至把SQLAlchemy看作在Python中使用关系型数据库的标准方式,使用SQLAlchemy已经成为Python程序员推荐的技能之一。

1.本书为O'Reilly系列丛书,众多年来“动物书”成为广大程序员心目中的解决问题的非常不错指南;

2.本书通过真实示例,一步步指导读者使用SQLAlchemy构建简单的数据库应用程序,以及使用相同的元数据同时连接多个数据库,既是很棒的学习工具,也是不错的参考手册;

3.本书提供了SQLAlchemy Core和SQLAlchemy ORM两种用法的对照,读者可以根据实际情况选择全部阅读或者只阅读当前需要的部分;

4.本书提供了示例代码和相关练习的下载链接,读者可以将示例代码直接用于自己的程序,提高工作效率;

5.读者可以在图灵社区中与其他读者进行交流,共同解决阅读和工作中遇到的问题,结交更多的学习路上的小伙伴。

本书主要探讨SQLAlchemy,这个Python 库在关系型数据库和传统编程之间架起了一座桥

梁,有助于Python 程序员将应用程序连接到关系型数据库。本书首先通过对比的方式介绍了SQLAlchemy 的两种主要使用模式——SQLAlchemy Core 和SQLAlchemy ORM,然后探讨了数据库迁移工具Alembic 的用法,快速讲解了SQLAlchemy 的应用。

贾森·迈尔斯(Jason Myers),Built Technologies平台工程师,曾在思科公司担任技术主管。在转做开发前,曾做过15年系统架构师。

里克·科普兰(Rick Copeland),Carefolio公司联合创始人兼CEO,Arborian咨询公司顾问,是位经验丰富的创业者、技术主管、演讲者、培训师和顾问。

前言     ix

SQLAlchemy  入门 xv

第  一部分 SQLAlchemy Core

第  1 章 模式和类型  3

1.1  类型  3

1.2  元数据  5

1.3  表  5

1.3.1  列  6

1.3.2  键和约束  7

1.3.3  索引  8

1.3.4  关联关系和外键约束  8

1.4  表的持久化  10

第  2 章 使用SQLAlchemy Core 处理数据  12

2.1  插入数据  12

2.2  查询数据  15

2.2.1  ResultProxy  16

2.2.2  控制查询中的列数  18

2.2.3  排序  18

2.2.4  限制返回结果集的条数  19

2.2.5  内置SQL 函数和标签  20

2.2.6  过滤  21

2.2.7  ClauseElement  22

2.2.8  运算符  23

2.2.9  布尔运算符  24

2.2.10  连接词  24

2.3  更新数据  25

2.4  删除数据  26

2.5  连接  27

2.6  别名  29

2.7  分组  29

2.8  链式调用  30

2.9  原始查询  32

第3  章 异常和事务  33

3.1  异常  33

3.1.1  AttributeError  34

3.1.2  IntegrityError  35

3.1.3  处理错误  37

3.2  事务  38

第4  章 测试  45

4.1  使用测试数据库做测试  45

4.2  使用mock  51

第5  章 反射  54

5.1  反射单个表  54

5.2  反射整个数据库  56

5.3  使用反射对象构建查询  57

第二部分  SQLAlchemy ORM

第6  章 使用SQLAlchemy ORM 定义模式  61

6.1  使用ORM 类定义表  61

6.2  关系  63

6.3  模式持久化  65

第7  章 使用SQLAlchemy ORM 处理数据  66

7.1  会话  66

7.2  插入数据  68

7.3  查询数据  71

7.3.1  控制查询中的列数  74

7.3.2  排序  74

7.3.3  限制返回结果集的条数  75

7.3.4  内置SQL 函数和标签  75

7.3.5  过滤  77

7.3.6  运算符  78

7.3.7  布尔运算符  79

7.3.8  连接词  79

7.4  更新数据  80

7.5  删除数据  81

7.6  连接  83

7.7  分组  85

7.8  链式调用  85

7.9  原始查询  87

第8  章 理解会话和异常  88

8.1  SQLAlchemy 会话  90

8.2  异常  92

8.2.1  MultipleResultsFound 异常  93

8.2.2  DetachedInstanceError  94

8.3  事务  96

第9  章 使用SQLAlchemy ORM 测试  103

9.1  使用测试数据库做测试  103

9.2  使用mock  111

第  10 章 使用SQLAlchemy ORM 和自动映射进行反射  113

10.1  使用自动映射反射数据库  113

10.2  反射关系  115

第三部分  Alembic

第  11 章 Alembic 入门  119

11.1  创建迁移环境  119

11.2  配置迁移环境  120

第  12 章 创建迁移  122

12.1  创建基础空迁移  122

12.2  自动生成迁移  124

12.3  手动创建迁移  127

第  13 章 控制Alembic  129

13.1  确定数据库的迁移级别  129

13.2  迁移降级  130

13.3  标记数据库迁移级别  131

13.4  生成SQL  131

第  14 章 SQLAlchemy 的不错应用  133

14.1  混合属性  133

14.2  关联代理  136

14.3  集成SQLAlchemy 和Flask  141

14.4  SQLAcodegen  143

第  15 章 接下来做什么  149

关于作者  150

关于封面  150

“本书选用了大量清晰、简洁的示例,很好适合使用关系型数据库的Python开发者阅读。从简单查询到ORM访问再到模式迁移,本书几乎涵盖了方方面面,足以帮助读者将应用程序连接到任何一种关系型数据库。”

——Doug Hellman,惠普公司OpenStack贡献者,The Python Standard Library by Example作者

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐