中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
FASTAPI WEB開發入門、進階與實戰

包郵 FASTAPI WEB開發入門、進階與實戰

作者:鐘遠曉
出版社:機械工業出版社出版時間:2023-10-01
開本: 16開 頁數: 495
中 圖 價:¥89.0(6.9折) 定價  ¥129.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

FASTAPI WEB開發入門、進階與實戰 版權信息

FASTAPI WEB開發入門、進階與實戰 本書特色

FastAPI被認為是取代Flask和Django的高性能的Web框架,是業界公認的Python Web的未來。尤其是在Python盛行的當下,FastAPI前景更被看好。InfoWorld發布的2021年*佳開源軟件中,FastAPI位列其中。FastAPI具有運行快速、編碼快捷、錯誤更少、操作直觀、簡易、代碼簡短、穩健、基于標準。但是學習FastAPI有一定的門檻,本書從0開始,手把手教你玩轉FastAPI,是一本從入門到精通的好書。

FASTAPI WEB開發入門、進階與實戰 內容簡介

這是一本從實戰角度介紹FastAPI web開發的入門與進階型技術書。本書沒有過多的理論介紹,接近從一線工作角度入手,介紹日常web開發需要掌握的相關知識。本書共分為4篇16章:第1篇是基礎篇,主要介紹FastAPI的基礎知識,包括FastAPI的基本信息、安裝使用、常規操作、中間件、數據庫相關內容。作為初學者,掌握這部分內容就可以快速上手使用FastAPI,處理各種日常問題。第二篇是進階篇,主要圍繞與FastAPI相關的高級技能展開,包括異常處理、功能擴展、安全認證、性能、測試等相關內容。第三篇是實戰篇,主要從案例的角度對FastAPI在典型應用場景中的落地進行分享,包括短鏈應用、websocket、基于公眾號的掛號系統等應用場景。第四篇是部署篇,這部分重點介紹如何實現FastAPI的自動化部署,這數據高階人員推薦技能。本篇提供了三種自動化部署方式。

FASTAPI WEB開發入門、進階與實戰 目錄

目  錄 Contents
前言
第1章 初識FastAPI1
1.1 FastAPI框架概述1
1.1.1 FastAPI與其他Web框架2
1.1.2 FastAPI的特性2
1.2 異步編程基礎4
1.2.1 并發編程機制4
1.2.2 并發與并行5
1.2.3 同步與異步6
1.2.4 阻塞與非阻塞6
1.3 asyncio協程概念7
1.4 asyncio協程簡單應用8
第2章 初試FastAPI11
2.1 搭建開發環境11
2.1.1 安裝Python語言包11
2.1.2 PyCharm的安裝14
2.1.3 PyCharm IDE配置解析器15
2.1.4 PyCharm IDE解析器的切換18
2.1.5 PIP安裝源的設置19
2.2 新建FastAPI項目22
2.2.1 新建簡單項目22
2.2.2 項目依賴庫的安裝24
2.3 簡單項目介紹27
2.3.1 創建app實例對象27
2.3.2 添加API請求路由注冊28
2.3.3 添加后端渲染模板路由29
2.3.4 啟動服務運行30
2.3.5 uvicorn參數說明34
2.3.6 查看交互式API文檔35
第3章 FastAPI基礎入門38
3.1 app應用配置參數詳解38
3.1.1 開啟Debug模式39
3.1.2 關于API交互式文檔參數40
3.1.3 關閉交互式文檔訪問42
3.1.4 全局routes參數說明42
3.1.5 全局異常/錯誤捕獲43
3.2 API端點路由注冊和匹配44
3.2.1 路由節點元數據44
3.2.2 路由URL匹配46
3.2.3 基于APIRouter實例的
      路由注冊48
3.3 同步和異步API端點路由50
3.3.1 同步API端點路由50
3.3.2 異步API端點路由51
3.4 多應用掛載51
3.4.1 主從應用掛載52
3.4.2 掛載其他WSGI應用52
3.5 自定義配置swagger_ui53
3.6 應用配置信息讀取55
3.6.1 基于文件讀取配置參數55
3.6.2 基于Pydantic和.env環境變量
   讀取配置參數56
3.6.3 給配置讀取加上緩存58
3.7 API端點路由函數參數58
3.7.1 路徑操作及路徑函數59
3.7.2 Path參數59
3.7.3 Query參數63
3.7.4 Body參數67
3.7.5 Form數據和文件處理77
3.7.6 Header參數81
3.7.7 Cookie參數設置和讀取83
3.8 請求報文85
3.8.1 Request對象85
3.8.2 更多Request屬性信息86
3.9 響應報文87
3.9.1 HTTP狀態碼分類88
3.9.2 指定HTTP狀態碼89
3.9.3 使用response_model定義響應
   報文內容90
3.9.4 Response類型93
3.9.5 自定義Response類型98
3.10 后臺異步任務執行99
3.11 應用啟動和關閉事件100
第4章 FastAPI異常及錯誤102
4.1 HTTPException異常103
4.1.1 HTTPException簡單源碼分析103
4.1.2 HTTPException的使用104
4.1.3 覆蓋HTTPException異常處理105
4.2 RequestValidationError錯誤106
4.2.1 RequestValidationError的使用106
4.2.2 覆蓋RequestValidationError
   錯誤處理107
4.3 自定義異常108
4.3.1 自定義異常的實現108
4.3.2 自定義內部錯誤碼和異常109
4.4 中間件拋出自定義異常110
第5章 Pydantic數據模型管理113
5.1 Pydantic介紹113
5.2 Pydantic的使用114
5.2.1 模型常見數據類型114
5.2.2 模型參數必選和可選115
5.2.3 模型多層嵌套116
5.2.4 模型對象實例化116
5.2.5 模型對象的轉換117
5.2.6 模型對象的復制118
5.2.7 異常信息的捕獲119
5.2.8 用Field()函數擴展更多復雜
   驗證120
5.2.9 自定義驗證器123
5.2.10 自定義驗證器的優先級124
5.2.11 多字段或模型共享校驗器125
5.2.12 root_validator根驗證器126
5.3 Pydantic在FastAPI中的應用127
5.3.1 模型類和Body的請求127
5.3.2 模型類和依賴注入關系128
5.3.3 模型Config類和ORM轉化130
第6章 FastAPI依賴注入機制詳解133
6.1 依賴注入框架134
6.2 依賴項及其聲明方式139
6.2.1 函數式依賴項140
6.2.2 類方式依賴項142
6.2.3 多個依賴項注入和依賴項
   傳參143
6.3 多層依賴項嵌套注入144
6.4 多個依賴對象注入146
6.5 不同位置上的依賴項146
6.5.1 全局依賴項的注入147
6.5.2 路徑操作依賴項的注入148
6.5.3 路由分組依賴項的注入149
第7章 FastAPI中間件151
7.1 HTTP請求中間件151
7.2 @app.middleware裝飾器中間件152
7.3 CORSMiddleware跨域中間件155
7.3.1 跨域中間件的使用156
7.3.2 跨域中間件源碼分析157
7.4 其他中間件161
7.4.1  HTTPSRedirectMiddleware
   中間件161
7.4.2 TrustedHostMiddleware中間件162
7.5 自定義中間件164
7.5.1 基于BaseHTTPMiddleware
   自定義中間件164
7.5.2 日志追蹤鏈路ID165
7.5.3 IP白名單中間件167
7.5.4 基于中間件獲取響應報文
   內容168
第8章 數據庫的應用170
8.1 數據庫基礎170
8.1.1 SQL概述170
8.1.2 SQL數據庫170
8.1.3 NoSQL數據庫171
8.2 Python操作SQLite數據庫171
8.2.1 創建并鏈接到數據庫172
8.2.2 游標對象操作數據172
8.3 ORM操作數據庫173
8.4 SQLAlchemy庫174
8.4.1 數據驅動異步和同步說明174
8.4.2 SQLAlchemy同步使用方式175
8.4.3 SQLAlchemy異步使用方式179
8.4.4 SQLAlchemy ORM反向生成
   模型184
8.5 SQLModel庫185
8.5.1 SQLModel同步使用方式186
8.5.2 SQLModel異步使用方式188
8.6 在FastAPI中整合異步
  SQLAlchemy處理190
8.6.1 需求分析和結構規劃190
8.6.2 應用配置信息讀取191
8.6.3 配置數據庫引擎191
8.6.4 使用yield管理會話依賴項192
8.6.5 定義表模型192
8.6.6 表模型CRUD封裝193
8.6.7 創建FastAPI實例并完成
   表創建194
8.6.8 定義對外可見的API195
8.6.9 完善對外可見的API195
8.6.10 Alembic數據庫版本管理199
8.7 Redis數據庫及aioredis使用201
8.7.1 連接Redis數據庫202
8.7.2 Redis客戶端對象實例化202
8.7.3 Redis基本緩存的應用203
8.7.4 Redis發布訂閱的應用206
8.7.5 Redis分布式鎖的應用208
第9章 安全認證機制211
9.1 OpenAPI規范211
9.2 基于標準HTTP的身份驗證方案213
9.2.1 HTTPBasic基本認證方案213
9.2.2 HTTPDigest摘要認證方案215
9.3 基于APIKey的特定密鑰方案221
9.4 基于OAuth 2的授權機制頒發
   令牌方案225
9.4.1 JWT組成結構225
9.4.2 JWT應用實踐227
9.4.3 OAuth 2參數說明228
9.4.4 OAuth 2主體角色230
9.4.5 客戶端模式230
9.4.6 密碼模式237
9.4.7 授權碼模式243
9.4.8 簡化模式253
第10章 短鏈應用實戰254
10.1 應用開發背景254
10.2 應用系統功能需求描述255
10.3 項目代碼編寫256
10.3.1 項目規劃256
10.3.2 應用配置信息讀取257
10.3.3 配置數據庫引擎257
10.3.4 使用yield管理會話依賴項257
10.3.5 定義表模型258
10.3.6 用戶信息表CURD封裝259
10.3.7 短鏈信息表CURD封裝260
10.3.8 創建FastAPI實例并初始
     化表261
10.3.9 創建測試賬號262
10.3.10 定義短鏈重定向接口262
10.3.11 定義短鏈生成接口263
10.3.12 將子路由添加到根路由并
    啟動服務267
第11章 WebSocket Vue簡易聊天室
     實戰269
11.1 WebSocket簡介269
11.2 項目系統描述270
11.3 項目代碼編寫271
11.3.1 項目代碼結構271
11.3.2 前端頁面開發272
11.3.3 后端開發280
11.3.4 跨進程WebSocket通信290
第12章 預約掛號系統實戰298
12.1 應用開發背景及系統功能需求299
12.2 項目框架結構規劃300
12.3 使用路由分組模塊化程序301
12.3.1 APIRouter參數說明302
12.3.2 APIRouter路由分組創建303
12.3.3 視圖函數綁定303
12.3.4 APIRouter路由分組注冊304
12.4 數據表模型設計304
12.4.1 數據庫安裝304
12.4.2 數據表設計308
12.4.3 模型類逆向生成310
12.4.4 數據庫引擎配置313
12.5 后端項目基礎框架搭建315
12.5.1 數據庫配置315
12.5.2 定制統一API內容規范317
12.5.3 定制全局異常/錯誤處理320
12.5.4 基于中間件日志記錄322
12.6 關鍵業務API實現334
12.6.1 微信登錄授權334
12.6.2 獲取首頁醫院信息337
12.6.3 獲取醫生列表信息340
12.6.4 獲取醫生排班信息341
12.6.5 獲取排班信息詳情345
12.6.6 訂單提交并支付346
12.6.7 未支付訂單再次支付353
12.6.8 微信支付回調357
12.6.9 歷史預約詳情列表接口361
12.6.10 其他業務接口說明361
12.7 超時訂單處理362
12.7.1 消息隊列說明362
12.7.2 AMQP介紹362
12.7.3 本地安裝RabbitMQ364
12.7.4 RabbitMQ簡單應用369
12.7.5 RabbitMQ死信隊列371
12.7.6 訂單超時后自動取消的實現373
12.8 同步轉異步處理382
12.8.1 asgiref轉換庫介紹383
12.8.2 asgiref轉換庫應用383
第13章 基于Pytest的API測試385
13.1 Pytest簡單應用385
13.1.1 unittest和Pytest的對比386
13.1.2 pytest.fixture裝飾器的使用390
13.1.3 測試配置文件conftest.py395
13.2 用FastAPI進行API單元測試397
13.2.1 基于TestClient的單元測試397
13.2.2 基于Httpx的異步單元測試398
第14章 生產環境部署詳解405
14.1 Linux服務器下部署應用程序405
14.1.1 分配具有root權限的
    普通用戶406
14.1.2 Linux系統上安裝Python 3406
14.1.3 基于pyenv管理Python版本407
14.1.4 基于pipenv管理虛擬環境410
14.1.5 生成依賴項配置文件412
14.1.6 基于Gunicorn Uvicorn的
     服務部署414
14.1.7 基于Supervisor的服務進程
    管理416
14.1.8 基于OpenResty的反向代理419
14.1.9 PostgreSQL數據庫的安裝423
14.2 基于SVN自動化部署425
14.3 基于Docker進行服務部署427
14.3.1 Docker的安裝和常用命令428
14.3.2 基于Dockerfile構建鏡像430
14.3.3 Docker容器化部署與運行432
14.4 Docker下的環境變量433
14.4.1 基于OS標準庫433
14.4.2 基于Pydantic中的BaseSettings
       自動綁定并解析環境變量434
14.4.3 Docker下的環境變量讀取434
14.5 基于Docker Compose進行服務
      編排436
14.5.1 多服務容器獨立運行部署436
14.5.2 多Docker容器一鍵編排部署437
14.6 基于Gogs Drone進行可持續
      集成441
14.6.1 通過Gogs搭建自助Git服務441
14.6.2 通過Drone搭建持續集成和
       持續交付444
第15章 FastAPI實戰常見問題454
15.1 依賴注入項的傳參454
15.2 自定義插件開發456
15.2.1 插件模板基類的定義456
15.2.2 實現類似Flask鉤子事件
       插件457
15.3 body重復消費引發阻塞問題460
15.3.1 阻塞問題復現460
15.3.2 解決方案462
15.4 全局request變量465
15.5 同步和異步相互轉換467
15.5.1 asgiref轉換包467
15.5.2 asyncer轉換包469
15.6 Model響應報文的排序470
15.7 同步和異步郵件發送471
15.7.1 同步方式472
15.7.2 異步方式474
15.8 基于Jaeger實現分布式
   鏈路追蹤476
15.8.1 分布式鏈路追蹤的簡單定義476
15.8.2 OpenTracing數據模型477
15.8.3 Jaeger介紹478
15.8.4 Jaeger安裝和應用479
15.8.5 基于Jaeger SDK實現鏈路
       追蹤480
15.8.6 FastAPI整合Jaeger SDK482
15.8.7 基于Jaeger SDK的跨服務
       鏈路統計486
15.9 基于Sentry實現錯誤信息收集489
15.9.1 Sentry安裝和配置489
15.9.2 FastAPI框架中引入Sentry492
展開全部

FASTAPI WEB開發入門、進階與實戰 相關資料

本書由淺入深地介紹了FastAPI的原理與實踐,并通過大量案例講解了與FastAPI相關的技術要點和難點。通過本書讀者可以輕松掌握并使用FastAPI。總之,這是一本非常接地氣的入門并實踐FastAPI的好書。 -陳煥 北京銀豐新融科技開發有限公司 項目總監
《我的第一個Python Web開發框架》與《從零開始編寫自己的C#框架》作者
對于軟件開發來說入門是最大的難點,而Web開發因新技術、新框架眾多,對初學者來說入門就更難了。聚焦到FastAPI,在缺少足夠實踐經驗的情況下,如何選擇和構建出一個完整的技術棧?本書給出了一套有效的解決方案,這套方案可以讓初學者少走彎路,不踩坑。本書還給出很多作者精心提煉的一線案例,這些案例代碼可以直接用于生產環境,而其中包含的豐富經驗和實用性是API文檔中沒有的,是純知識驗證型示例代碼中沒有的。閱讀本書,學習技術,領悟一名老程序員的經驗! -馬杰 副教授,TurboSnail軟件研發團隊負責人
我很榮幸為廣大讀者推薦這本關于FastAPI的杰作。看完本書后及鐘兄的博客后,我成功構筑了造數平臺中的分布式架構造數平臺。如今,造數平臺在公司內部得到廣泛贊譽,在公司外部得到了眾多開發者的高度認可和使用。在此,讓我向鐘兄表達由衷的感激,同時期盼這本書能為更多的讀者打開FastAPI的神奇之門,成為大家編程旅程中的永恒知音。 - 章福鵬 米哈游 業務平臺組/基礎服務組/運維平臺組 開發工程師 本書對FastAPI相關的基礎知識以及如何使用FastAPI進行了詳細說明,對于常見的FastAPI相關的問題也進行了非常清晰和透徹解析,值得學習以及參考。 - 周浩輝 廣東省電信規劃設計院 數據庫系統工程師
FastAPI能夠以驚人的速度處理高并發請求,并且提供強大的類型提示和自動文檔生成功能,使得開發過程更加高效和可靠。本書是難得的入門FastAPI的好書,書中從基礎到實踐都有詳細介紹,對于想要自己構建一個完整后端應用的讀者來說,本書值得參考學習。 - 郭志強 佛山科橋科技有限公司 技術總監

FASTAPI WEB開發入門、進階與實戰 作者簡介

鐘遠曉(網名小鐘同學),某知名企業資深軟件工程師。 *FastAPI社區貢獻者,為FastAPI社區貢獻大量代碼和文檔。 *FastAPI嘗鮮者、實踐者,用FastAPI開發了多個高性能、可擴展的大型Web應用。 *FastAPI推動者,通過公眾號“程序員小鐘同學”發表了近百篇FastAPI相關技術文章。 *精通Python、Go、Android等開發語言,及FastAPI、Flask和Django等框架。 *具有多年的全棧開發經驗,在現代Web應用開發、Python生態系統方面經驗尤其豐富。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 广州活动策划公司-15+年专业大型公关活动策划执行管理经验-睿阳广告 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 精益专家 - 设备管理软件|HSE管理系统|设备管理系统|EHS安全管理系统 | 杰恒蠕动泵-蠕动泵专业厂家-19年专注蠕动泵 | 土壤养分检测仪|土壤水分|土壤紧实度测定仪|土壤墒情监测系统-土壤仪器网 | 北京京云律师事务所 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪| 巩义市科瑞仪器有限公司| 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 智慧水务|智慧供排水利信息化|水厂软硬件系统-上海敢创 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 东莞压铸厂_精密压铸_锌合金压铸_铝合金压铸_压铸件加工_东莞祥宇金属制品 | 真空包装机-诸城市坤泰食品机械有限公司 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 水质监测站_水质在线分析仪_水质自动监测系统_多参数水质在线监测仪_水质传感器-山东万象环境科技有限公司 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 美缝剂_美缝剂厂家_美缝剂加盟-地老板高端瓷砖美缝剂 | 猎头招聘_深圳猎头公司_知名猎头公司 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 转向助力泵/水泵/发电机皮带轮生产厂家-锦州华一精工有限公司 | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 郑州爱婴幼师学校_专业幼师培训_托育师培训_幼儿教育培训学校 | 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 知网论文检测系统入口_论文查重免费查重_中国知网论文查询_学术不端检测系统 | 隧道烘箱_隧道烘箱生产厂家-上海冠顶专业生产烘道设备 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 |