|
|
|
|
|
|
|
|
ISBN |
9787512437814 |
定价 |
RMB89.00 |
售价 |
RM97.90 |
优惠价 |
RM68.53 * (-30%)
|
作者 |
(法)弗朗索瓦·沃龍
|
译者 |
張晨曦 |
出版社 |
北京航空航天大學出版社
|
出版日期 |
2022-05-01 |
装订 |
平裝. 無. 290 页. 26. |
库存量 |
購買後立即進貨 下单时可选择“空运”或“海运”(空运和海运需独立下单)。空运费每本书/CD是RM27.00。 空运需时8-11个工作天,海运需时约30个工作天。 (以上预计时间不包括出版社调货的时间以及尚未出版的预购商品) 库存有限或需要调货,订购时间可能延长。如无法订购则将通知进行退款。 |
|
我要订购 有现货时通知我 |
|
放入下次购买清单 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
本書從FastAPI框架的基礎知識和相關的Python程式設計概念開始講解。然後,您將瞭解該框架的所有方面知識,包括其強大的依賴注入系統,以及如何使用它與數據庫通信、實現身份驗證和集成機器學習模型等。之後,您將學習與測試和部署相關的最佳實踐,以運行高品質和健壯的應用程式。最後,您還將學習Python數據科學軟件包的應用生態系統。隨著學習的深入,您將學習如何使用FastAPI在Python中構建數據科學應用程式。
本書還演示了如何開發快速高效的機器學習預測後端,並對其進行測試,以獲得最佳性能。最後,您將看到如何使用WebSocket和Web流覽器作為用戶端實現人臉即時檢測。在本書的最後,您不僅學習如何在數據科學項目中實現Python,還學習如何在FastAPI的幫助下維護和設計它們,以滿足高程式設計標準。本書面向對FastAPI及其生態系統感興趣的數據科學家和軟件開發人員,並以此構建數據科學應用程式。讀者需要具備數據科學和機器學習概念的基本知識,以及瞭解如何在Python中應用它們。 |
|
|
|
|
|
|
|
|
|
|
|
購買中國簡體書籍請注意:
1. 因裝幀品質及貨運條件未臻完善,中國簡體書可能有出現磨痕、凹痕、折痕等問題,故簡體字館除封面破損、內頁脫落、缺頁等較嚴重的狀態外,其餘所有商品將正常出貨。
|
|
|
|
|
|
|
|
|
目錄
第1章 快速入門:基礎知識 / 1
第一部分 Python和FastAPI 概述
第1章 Python開發環境設置3
1.1技術要求3
1.2使用pyenv安裝Python發行版本3
1.3創建Python虛擬環境5
1.4使用pip安裝Python包7
1.5安裝HTTPie命令列實用程式7
1.6總結9
第2章 Python 編程特性10
2.1技術要求10
2.2Python編程基礎10
2.2.1運行Python腳本11
2.2.2縮進問題12
2.2.3使用內置的類型13
2.2.4使用數據結構:清單、元組、字典和集合13
2.2.5執行布林邏輯並檢查是否存在17
2.2.6程式控制流19
2.2.7定義函數21
2.2.8編寫及使用包和模組23
2.3列表解析和生成器25
2.3.1列表解析25
2.3.2生成器27
2.4編寫物件導向的程式28
2.4.1定義類29
2.4.2實現魔法函數30
2.4.3重用邏輯並使用繼承避免重複33
2.5使用mypy進行類型提示和類型檢查36
2.5.1開始36
2.5.2typing模組37
2.5.3可調用的類型函數簽名39
2.5.4Ang和cast40
2.6非同步I/O41
2.7總結44
第3章 使用FastAPI開發RESTful API45
3.1技術要求45
3.2創建第一個端點並在本地運行45
3.3處理請求參數48
3.3.1路徑參數48
3.3.2查詢參數53
3.3.3主體數據54
3.3.4表單數據和文件上傳58
3.3.5Header和Cookie62
3.3.6請求對象64
3.4自訂回應65
3.4.1路徑操作參數65
3.4.2回應參數69
3.4.3引發HTTP錯誤73
3.4.4構建自訂回應75
3.5使用多個路由器構建一個更大的項目78
3.6總結81
目錄Python FastAPI構建數據科學應用
第4章 在FastAPI中管理Pydantic數據模型82
4.1技術要求82
4.2使用Pydantic定義模型及欄位類型82
4.2.1標準欄位類型83
4.2.2可選欄位和預設值87
4.2.3欄位驗證88
4.2.4動態預設值89
4.2.5使用Pydantic類型驗證郵寄地址和URL90
4.3使用類繼承創建模型變數92
4.4使用Pydantic添加自訂數據驗證94
4.4.1在欄位級別上應用驗證94
4.4.2在物件級別上應用驗證95
4.4.3在Pydantic解析之前應用驗證96
4.5使用Pydantic物件96
4.5.1將物件轉換為字典97
4.5.2從子類物件創建實例98
4.5.3使用部分實例更新一個實例100
4.6總結101
第5章 FastAPI中的依賴注入102
5.1技術要求102
5.2什麼是依賴注入102
5.3創建和使用函數依賴項103
5.4創建和使用具有類的參數化依賴項107
5.5在路徑、路由器和全域級別使用依賴項110
5.5.1在路徑裝飾器上使用依賴項110
5.5.2在整個路由器上使用依賴項111
5.5.3對整個應用程式使用依賴項112
5.6總結114
第二部分 使用FastAPI構建和部署完整的Web後端
第6章 數據庫和非同步ORM117
6.1技術要求117
6.2關係數據庫和NoSQL數據庫118
6.2.1關係數據庫118
6.2.2NoSQL數據庫119
6.2.3選擇最佳數據庫120
6.3使用SQLAlchemy與SQL數據庫通信121
6.3.1創建表架構122
6.3.2連接到數據庫123
6.3.3進行插入查詢124
6.3.4進行選擇查詢125
6.3.5進行更新和刪除查詢127
6.3.6添加關係128
6.3.7用Alembic建立數據庫遷移系統131
6.4使用Tortoise ORM與SQL數據庫通信135
6.4.1創建數據庫模型135
6.4.2設置Tortoise引擎137
6.4.3創建對象138
6.4.4獲取和過濾對象139
6.4.5更新和刪除對象140
6.4.6添加關係141
6.4.7用Aerich建立數據庫遷移系統144
6.5使用Motor與MongoDB數據庫通信146
6.5.1創建與MongoDB ID相容的模型146
6.5.2連接到數據庫147
6.5.3插入文檔148
6.5.4獲取文件149
6.5.5更新和刪除文檔151
6.5.6嵌套文檔152
6.6總結153
第7章 FastAPI中的管理認證與安全性154
7.1技術要求154
7.2FastAPI中的安全依賴關係154
7.3在數據庫中安全地存儲使用者及其密碼157
7.3.1創建模型和表158
7.3.2雜湊密碼159
7.3.3實施註冊路線159
7.4檢索用戶並生成訪問權杖160
7.4.1實現數據庫訪問權杖(access token)160
7.4.2實現登錄端點161
7.5使用訪問權杖保護端點164
7.6配置CORS並防止CSRF攻擊165
7.6.1在FastAPI中進行配置CORS166
7.6.2實現doublesubmit Cookie以防止CSRF攻擊171
7.7總結175
第8章 在FastAPI中為雙向交互通信定義WebSocket176
8.1技術要求176
8.2瞭解使用WebSocket進行雙向通信的原理177
8.3使用FastAPI創建WebSocket177
8.3.1處理併發性180
8.3.2使用依賴項182
8.4處理多個WebSocket連接和廣播消息184
8.5總結190
第9章 使用pytest和HTTPX非同步測試API191
9.1技術要求191
9.2使用pytest進行單元測試192
9.2.1使用參數生成測試194
9.2.2通過創建fixture重用測試邏輯195
9.3使用HTTPX為FastAPI設置測試工具198
9.4為REST API端點編寫測試201
9.4.1為POST端點編寫測試202
9.4.2使用數據庫進行測試203
9.5為WebSocket端點編寫測試209
9.6總結211
第10章 部署FastAPI專案213
10.1技術要求213
10.2設置和使用環境變數213
10.3管理Python依賴項217
10.4在無伺服器平臺上部署FastAPI應用程式220
10.5使用Docker部署FastAPI應用程式223
10.5.1編寫Dockerfile223
10.5.2構建Docker映射225
10.5.3在本地運行Docker映射225
10.5.4部署Docker映射226
10.6在傳統伺服器上部署FastAPI應用程式227
10.7總結228
第三部分 使用Python和FastAPI構建數據科學API
第11章 NumPy和pandas簡介231
11.1技術要求231
11.2NumPy入門231
11.2.1創建數組232
11.2.2訪問元素和子數組234
11.3使用NumPy操作數組:計算、聚合、比較236
11.3.1數組的加法和乘法238
11.3.2聚合數組:總和、最小值、最大值、平均值等239
11.3.3數組比較239
11.4pandas入門240
11.4.1使用pandas Series獲取一維數據240
11.4.2使用pandas DataFrame獲取多維數據242
11.4.3導入和匯出CSV數據244
11.5總結245
第12章 使用scikitlearn訓練機器學習模型246
12.1技術要求246
12.2什麼是機器學習246
12.2.1監督學習與無監督學習247
12.2.2模型驗證247
12.3scikitlearn的基礎知識249
12.3.1訓練模型和預測249
12.3.2使用pipeline連結前置處理器和估計器251
12.3.3通過交叉驗證驗證模型255
12.4使用樸素貝葉斯模型對數據進行分類255
12.4.1原理256
12.4.2使用高斯樸素貝葉斯對數據進行分類256
12.4.3使用多項式樸素貝葉斯對數據進行分類259
12.5使用支持向量機對數據進行分類260
12.5.1原理260
12.5.2支援向量機在scikitlearn中的應用262
12.5.3查找最佳參數263
12.6總結265
第13章 使用FastAPI創建高效的預測API端點266
13.1技術要求266
13.2使用Joblib持久化經過訓練的模型266
13.2.1拋棄已訓練的模型267
13.2.2載入轉儲模型268
13.3實現高效的預測端點269
13.4使用Joblib緩存結果271
13.5總結275
第14章 使用帶FastAPI和OpenCV的WebSockets實現人臉即時檢測系統277
14.1技術要求277
14.2OpenCV入門277
14.3實現HTTP端點以對單個圖像執行人臉檢測280
14.4實現WebSocket以對圖像流執行人臉檢測282
14.5在WebSocket中從流覽器發送圖像流284
14.6在流覽器中顯示人臉檢測結果287
14.7總結290 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Francois Voro畢業於法國聖埃蒂安大學和西班牙阿利坎特大學,獲得機器學習和數據挖掘碩士學位。François是一名全棧web開發人員和數據科學家,在SaaS行業有卓越的成績,特別實在Python後端和REST API領域。他還是FastAPI Users(FastAPI身份驗證庫)的創建者和維護者,也是FastAPI社區的頂級專家之一。 |
|
|
|
|
|
|
|
|
|
|
|