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