注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计Python FastAPI构建数据科学应用Building Data Science Appl

Python FastAPI构建数据科学应用Building Data Science Appl

Python FastAPI构建数据科学应用Building Data Science Appl

定 价:¥89.00

作 者: [法] Francois Voron 著,张晨曦 译
出版社: 北京航空航天大学出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787512437814 出版时间: 2022-05-01 包装: 平装
开本: 16开 页数: 304 字数:  

内容简介

  本书从FastAPI框架的基础知识和相关的Python编程概念开始讲解。然后,您将了解该框架的所有方面知识,包括其强大的依赖注入系统,以及如何使用它与数据库通信、实现身份验证和集成机器学习模型等。之后,您将学习与测试和部署相关的最佳实践,以运行高质量和健壮的应用程序。最后,您还将学习Python数据科学软件包的应用生态系统。随着学习的深入,您将学习如何使用FastAPI在Python中构建数据科学应用程序。本书还演示了如何开发快速高效的机器学习预测后端,并对其进行测试,以获得最佳性能。最后,您将看到如何使用WebSocket和Web浏览器作为客户端实现人脸实时检测。在本书的最后,您不仅学习如何在数据科学项目中实现Python,还学习如何在FastAPI的帮助下维护和设计它们,以满足高编程标准。 本书面向对FastAPI及其生态系统感兴趣的数据科学家和软件开发人员,并以此构建数据科学应用程序。读者需要具备数据科学和机器学习概念的基本知识,以及了解如何在Python中应用它们。

作者简介

  Francois Voro毕业于法国圣埃蒂安大学和西班牙阿利坎特大学,获得机器学习和数据挖掘硕士学位。François是一名全栈web开发人员和数据科学家,在SaaS行业有卓越的成绩,特别实在Python后端和REST API领域。他还是FastAPI Users(FastAPI身份验证库)的创建者和维护者,也是FastAPI社区的顶级专家之一。

图书目录

第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

本目录推荐