定 價:¥99.00
作 者: | 劉瑜,安義,陳逸懷,喻小菲 |
出版社: | 華中科技大學出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787568087223 | 出版時間: | 2022-10-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 字數(shù): |
第1部分 基礎篇
第1章 認識FastAPI 3
1.1 Web基礎知識 3
1.1.1 Web簡介 3
1.1.2 超文本傳輸協(xié)議基礎 7
1.2 初識FastAPI 10
1.2.1 FastAPI簡介 10
1.2.2 安裝FastAPI 11
1.2.3 驗證安裝結果 12
1.3 Hello三酷貓 13
1.3.1 第一個程序,Hello三酷貓 13
1.3.2 OpenAPI文檔 14
1.3.3 Python中的異步語法 15
1.4 FastAPI框架構成 16
1.4.1 FastAPI框架功能 16
1.4.2 Python類型提示 17
1.4.3 Pydantic框架 21
1.4.4 Starlette框架 24
1.5 PyCharm代碼編輯工具 25
1.5.1 PyCharm簡介及安裝 25
1.5.2 PyCharm常用功能 30
1.6 習題及實驗 34
?
第2章 認識請求 35
2.1 請求原理 35
2.2 路徑參數(shù) 36
2.2.1 簡單路徑參數(shù) 37
2.2.2 有類型的路徑參數(shù) 38
2.2.3 有類型路徑參數(shù)的數(shù)據(jù)驗證 38
2.2.4 路由訪問順序 39
2.2.5 使用枚舉類型參數(shù) 40
2.3 查詢參數(shù) 42
2.3.1 標準查詢參數(shù) 42
2.3.2 可選查詢參數(shù) 43
2.3.3 必選查詢參數(shù) 44
2.3.4 參數(shù)類型轉換 45
2.3.5 同時使用路徑參數(shù)和查詢參數(shù) 46
2.3.6 案例:三酷貓賣海鮮(一) 47
2.4 請求體 48
2.4.1 定義請求體的數(shù)據(jù)模型 49
2.4.2 同時使用路徑參數(shù)、查詢參數(shù)和請求體 51
2.4.3 可選的請求體參數(shù) 54
2.4.4 同時使用多個請求體 56
2.4.5 常規(guī)數(shù)據(jù)類型作為請求體使用 58
2.5 表單和文件 59
2.5.1 表單數(shù)據(jù) 59
2.5.2 文件上傳 60
2.5.3 表單和多文件上傳 62
2.6 案例:三酷貓賣海鮮(二) 62
2.7 習題及實驗 64
第3章 認識響應 66
3.1 響應原理 66
3.2 響應模型 67
3.2.1 認識響應模型 67
3.2.2 業(yè)務數(shù)據(jù)模型 71
3.2.3 簡化數(shù)據(jù)模型定義 72
3.2.4 使用多個響應模型 73
?
3.3 內置響應類 74
3.3.1 純文本響應 75
3.3.2 HTML響應 75
3.3.3 重定向響應 77
3.3.4 JSON響應 78
3.3.5 通用響應 79
3.3.6 流響應 80
3.3.7 文件響應 81
3.4 案例:三酷貓賣海鮮(三) 81
3.5 習題及實驗 83
第4章 深入請求和響應 84
4.1 在請求中使用類 84
4.1.1 查詢參數(shù)類 84
4.1.2 路徑參數(shù)類 90
4.1.3 Cookie參數(shù)類 91
4.1.4 Header參數(shù)類 93
4.1.5 Field類 95
4.1.6 實現(xiàn)復雜的請求數(shù)據(jù)模型 97
4.1.7 直接使用請求類 101
4.2 自定義響應返回數(shù)據(jù) 102
4.2.1 自定義Cookie數(shù)據(jù) 102
4.2.2 自定義Header數(shù)據(jù) 103
4.2.3 默認響應狀態(tài)碼 104
4.2.4 自定義響應狀態(tài)碼 105
4.3 異常處理 106
4.3.1 異常類HttpException 106
4.3.2 全局異常處理器 108
4.3.3 內置異常處理器 110
4.4 中間件技術 112
4.4.1 自定義中間件 113
4.4.2 調用CORS中間件 113
4.4.3 調用UnicornMiddleware中間件 115
4.4.4 調用HTTPSRedirectMiddleware中間件 115
4.4.5 調用TrustedHostMiddleware中間件 116
4.4.6 調用GZipMiddleware中間件 118
4.5 案例:三酷貓賣海鮮(四) 118
4.6 習題及實驗 120
第5章 依賴注入 121
5.1 依賴注入原理 121
5.2 使用函數(shù)實現(xiàn)依賴注入 122
5.3 使用類實現(xiàn)依賴注入 124
5.4 依賴注入的嵌套 125
5.5 在裝飾器中使用依賴注入 127
5.6 依賴項中的yield 129
5.7 依賴類的可調用實例 131
5.8 案例:三酷貓賣海鮮(五) 133
5.9 習題及實驗 134
第6章 數(shù)據(jù)庫操作 135
6.1 SQLAlchemy基本操作 135
6.1.1 安裝和連接 136
6.1.2 定義數(shù)據(jù)模型 137
6.1.3 定義關聯(lián)關系 139
6.1.4 CRUD操作 143
6.1.5 直接使用SQL 145
6.2 連接MySQL 146
6.2.1 安裝數(shù)據(jù)庫驅動 146
6.2.2 創(chuàng)建項目并連接SQLAlchemy 146
6.2.3 創(chuàng)建SQLAlchemy數(shù)據(jù)庫模型 147
6.2.4 創(chuàng)建Pydantic數(shù)據(jù)模型 148
6.2.5 實現(xiàn)數(shù)據(jù)操作 149
6.2.6 實現(xiàn)FastAPI請求函數(shù) 151
6.3 連接MongoDB 154
6.3.1 安裝MongoDB 155
6.3.2 安裝數(shù)據(jù)庫驅動 157
6.3.3 實現(xiàn)MongoDB中的數(shù)據(jù)操作 158
6.4 連接Redis 160
6.4.1 安裝Redis 161
6.4.2 安裝數(shù)據(jù)庫驅動 162
6.4.3 實現(xiàn)Redis中的數(shù)據(jù)操作 163
6.5 案例:三酷貓賣海鮮(六) 165
6.6 習題及實驗 167
第7章 安全機制 169
7.1 安全機制基本功能 169
7.2 添加基于OAuth 2的安全機制 171
7.3 實現(xiàn)基于OAuth 2的安全機制 172
7.3.1 創(chuàng)建數(shù)據(jù)庫應用 173
7.3.2 增加注冊用戶功能 175
7.3.3 生成令牌 178
7.3.4 增加用戶登錄功能 178
7.3.5 獲取當前登錄用戶數(shù)據(jù) 180
7.4 習題及實驗 182
第8章 異步技術 183
8.1 基本概念 183
8.1.1 進程/線程 183
8.1.2 阻塞/非阻塞 184
8.1.3 同步/異步 185
8.1.4 并發(fā)/并行 185
8.1.5 GIL 185
8.2 協(xié)程 186
8.2.1 事件循環(huán)加回調 186
8.2.2 基于生成器的協(xié)程 186
8.2.3 使用yield from 改進協(xié)程 187
8.2.4 原生協(xié)程 187
8.3 Asyncio庫介紹 187
8.3.1 事件循環(huán) 188
8.3.2 協(xié)程 188
8.3.3 Future對象 189
8.3.4 Task和可等待對象 189
8.4 案例:三酷貓賣海鮮(七) 190
8.5 習題及實驗 191
第9章 企業(yè)應用架構 193
9.1 應用程序和子應用 193
9.1.1 使用環(huán)境變量 193
9.1.2 應用事件處理 197
9.1.3 管理子應用 198
9.1.4 管理外部Web應用 200
9.2 應用模塊管理 201
9.2.1 路由類 202
9.2.2 應用目錄結構 202
9.3 頁面模板技術 204
9.3.1 Jinja2模板入門 204
9.3.2 管理靜態(tài)文件 206
9.4 案例:三酷貓賣海鮮(八) 207
9.5 習題及實驗 210
第10章 測試與部署 211
10.1 測試工具 211
10.1.1 常規(guī)測試 211
10.1.2 分離測試代碼 214
10.1.3 應用事件測試 215
10.1.4 依賴項測試 216
10.1.5 測試數(shù)據(jù)庫 218
10.1.6 異步測試工具 219
10.2 部署程序 220
10.2.1 virtualenv和pip3 221
10.2.2 部署到Linux服務器 222
10.2.3 部署為后臺進程 223
10.2.4 使用代理服務 225
10.3 案例:三酷貓海鮮項目測試 226
10.4 習題及實驗 227
?
第2部分 實戰(zhàn)篇
第11章 核酸采集平臺:功能分析與設計 231
11.1 需求分析 231
11.2 系統(tǒng)設計 232
11.2.1 邏輯架構 232
11.2.2 技術架構 233
11.2.3 數(shù)據(jù)架構 234
11.3 任務分工 235
第12章 核酸采集平臺:后端項目 236
12.1 后端項目環(huán)境搭建 236
12.2 后端項目目錄結構 236
12.3 后端項目代碼實現(xiàn) 238
12.3.1 主文件 238
12.3.2 配置文件 239
12.3.3 數(shù)據(jù)庫引擎 239
12.3.4 登錄認證模塊 240
12.3.5 預約模塊 244
12.3.6 登記模塊 247
12.3.7 運行后端項目 250
12.4 后端項目部署 253
12.4.1 準備服務器環(huán)境 254
12.4.2 安裝數(shù)據(jù)庫環(huán)境 254
12.4.3 安裝Python環(huán)境 255
12.4.4 上傳項目文件 255
12.4.5 安裝第三方庫 255
12.4.6 部署為后臺進程 256
12.4.7 驗證部署環(huán)境 256
第13章 核酸采集平臺:前端項目 262
13.1 前端開發(fā)環(huán)境搭建 262
13.2 管理端項目目錄結構 262
13.3 管理端項目代碼實現(xiàn) 263
13.4 管理端項目運行與發(fā)布 270
13.5 移動端項目目錄結構 272
13.6 移動端項目代碼實現(xiàn) 273
13.7 移動端運行與發(fā)布 275
附錄A 在Win 10上安裝MySQL數(shù)據(jù)庫 277
附錄B Vue.js使用介紹 290
附錄C 附贈代碼清單 309
后記 314