SQLAlchemy Python數據庫實戰(zhàn) 第2版(圖靈出品)
本書主要探討SQLAlchemy,這個Python 庫在關系型數據庫和傳統編程之間架起了一座橋
梁,有助于Python 程序員將應用程序連接到關系型數據庫。本書首先通過對比的方式介紹了SQLAlchemy 的兩種主要使用模式——SQLAlchemy Core 和SQLAlchemy ORM,然后探討了數據庫遷移工具Alembic 的用法,快速講解了SQLAlchemy 的應用。
SQLAlchemy是一個流行的開源代碼庫,功能強大又相當靈活,能夠幫助Python程序員使用各種關系型數據庫,許多公司甚至把SQLAlchemy看作在Python中使用關系型數據庫的標準方式,使用SQLAlchemy已經成為Python程序員必備的技能之一。
1.本書為O'Reilly系列叢書,眾多年來“動物書”成為廣大程序員心目中的解決問題的**指南;
2.本書通過真實示例,一步步指導讀者使用SQLAlchemy構建簡單的數據庫應用程序,以及使用相同的元數據同時連接多個數據庫,既是很棒的學習工具,也是不錯的參考手冊;
3.本書提供了SQLAlchemy Core和SQLAlchemy ORM兩種用法的對照,讀者可以根據實際情況選擇全部閱讀或者只閱讀當前需要的部分;
4.本書提供了示例代碼和相關練習的下載鏈接,讀者可以將示例代碼直接用于自己的程序,提高工作效率;
5.讀者可以在圖靈社區(qū)中與其他讀者進行交流,共同解決閱讀和工作中遇到的問題,結交更多的學習路上的小伙伴。
賈森·邁爾斯(Jason Myers),Built Technologies平臺工程師,曾在思科公司擔任技術主管。在轉做開發(fā)前,曾做過15年系統架構師。
里克·科普蘭(Rick Copeland),Carefolio公司聯合創(chuàng)始人兼CEO,Arborian咨詢公司顧問,是位經驗豐富的創(chuàng)業(yè)者、技術主管、演講者、培訓師和顧問。
前言 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 創(chuàng)建遷移環(huán)境 119
11.2 配置遷移環(huán)境 120
第 12 章 創(chuàng)建遷移 122
12.1 創(chuàng)建基礎空遷移 122
12.2 自動生成遷移 124
12.3 手動創(chuàng)建遷移 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