×
暂无评论
图文详情
  • ISBN:9787512437814
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:24cm
  • 页数:290页
  • 出版时间:2022-05-01
  • 条形码:9787512437814 ; 978-7-5124-3781-4

本书特色

FastAPI是一个Web框架,可用于Python 3.6及其更高版本构建API。有了这本书,您将能够使用实际示例创建快速可靠的数据科学API后端。

内容简介

本书从FastAPI框架的基础知识和相关的Python编程概念开始讲解。然后, 介绍该框架的所有方面知识, 包括其强大的依赖注入系统, 以及如何使用它与数据库通信、实现身份验证和集成机器学习模型等。之后, 讲解部署相关的*佳实践, 以运行高质量的应用程序。*后, 介绍了Python数据科学软件包的应用生态系统。还演示了如何开发快速高效的机器学习预测后端, 并对其进行测试。*后, 讲解如何使用WebSocket和Web浏览器作为客户端实现人脸实时检测。

目录

第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实现doublesubmit 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章使用scikitlearn训练机器学习模型246

12.1技术要求246

12.2什么是机器学习246

12.2.1监督学习与无监督学习247

12.2.2模型验证247

12.3scikitlearn的基础知识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支持向量机在scikitlearn中的应用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社区的顶级专家之一。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航