热门搜索: 中考 高考 考试 开卷17
服务电话 024-23945002/96192
 

FASTAPI学习手册

编号:
wx1203678384
销售价:
¥85.26
(市场价: ¥98.00)
赠送积分:
85
数量:
   
商品介绍

本书涵盖了以下内容:怎样使用FastAPI构建Web应用程序。FastAPI、Starlette与 Pydantic之间的区别及联系。让FastAPI框架与众不同的两项性,也就是对异步函数的支持,以及数据类型的检测及验证机制。Python 3.8及后续版本所支持的新功能,尤其是类型注解机制。同步Python代码与异步Python代码之间的区别。怎样与外部的API及服务相连接。

目录
前言 1
第一部分 新知识介绍
第1 章 当代的Web . 11
1.1 预览 . 11
1.2 服务与API 12
1.2.1 API 的类型 .12
1.2.2 HTTP .14
1.2.3 REST(RESTful) .14
1.2.4 JSON 与API 数据格式.17
1.2.5 JSON:API 17
1.2.6 GraphQL 17
1.3 并发 .18
1.4 分层 .19
1.5 数据 .25
1.6 小结 .25
第2 章 当代的Python 27
2.1 预览 .27
2.2 工具 .27
2.3 Python 入门 .28
2.3.1 Python 语言本身 .29
2.3.2 Python 语言的软件包管理机制 30
2.3.3 虚拟环境 .30
2.3.4 Poetry 31
2.3.5 源代码的格式 32
2.3.6 测试 32
2.3.7 源代码控制与持续集成 33
2.3.8 Web 开发工具 33
2.4 API 与服务 34
2.5 变量只不过是个名字 34
2.6 类型提示36
2.7 数据结构37
2.8 Web 框架 37
2.8.1 Django 37
2.8.2 Flask 38
2.8.3 FastAPI.38
2.9 小结 .39
第二部分 FastAPI 导览
第3 章 FastAPI 简介 43
3.1 预览 .43
3.2 什么是FastAPI 43
3.3 FastAPI 应用程序 .44
3.4 处理HTTP 请求 50
3.4.1 通过URL 路径传递参数 .51
3.4.2 通过查询字符串传递参数 53
3.4.3 通过请求体传递参数.55
3.4.4 通过Header 传递参数 57
3.4.5 通过多种方式获取HTTP 请求之中的数据 59
3.4.6 用哪一种方式获取数据最好 .59
3.5 给出HTTP 响应 59
3.5.1 状态码 60
3.5.2 Header 61
3.5.3 HTTP 响应的类型 61
3.5.4 类型转换 .62
3.5.5 通过response_model 返回另一种数据模型 63
3.6 自动化的文档 .66
3.7 如何处理更为复杂的数据 69
3.8 小结 .69
第4 章 异步、并发与Starlette 简介 .71
4.1 预览 .71
4.2 Starlette .71
4.3 并发的类型 72
4.3.1 分布式计算与并行计算 73
4.3.2 操作系统级别的进程.73
4.3.3 操作系统级别的线程.74
4.3.4 绿色线程 .74
4.3.5 回调 75
4.3.6 Python 生成器 75
4.3.7 Python 的async、await 关键字与asyncio 库 77
4.4 FastAPI 与异步开发 79
4.5 直接使用Starlette 做Web 开发 .82
4.6 插曲:清理Clue House .83
4.7 小结 .85
第5 章 Pydantic、类型提示与数据模型简介 . 87
5.1 预览 .87
5.2 类型提示87
5.3 给数据归组 91
5.4 其他一些数据归组方案 .97
5.5 一个简单的示例 99
5.6 对类型做验证 103
5.7 对取值做出验证 .104
5.8 小结 107
第6 章 描述依赖关系 109
6.1 预览 109
6.2 什么是依赖 .109
6.3 由依赖导致的问题 . 110
6.4 依赖注入. 111
6.5 FastAPI 的依赖注入 . 111
6.6 在FastAPI 代码里面描述依赖关系 112
6.7 依赖关系的作用范围 113
6.7.1 为单个的路径函数指定依赖关系 . 113
6.7.2 为多条路径指定同一种依赖关系 . 115
6.7.3 为整个应用程序指定依赖关系 116
6.8 小结 116
第7 章 各种Web 框架之间的对比 117
7.1 预览 117
7.2 Flask 与FastAPI 的异同 . 118
7.2.1 处理URL 之中的参数 118
7.2.2 处理查询字符串之中的参数 120
7.2.3 处理请求体之中的参数 .120
7.2.4 处理标头之中的参数121
7.3 Django 框架与Flask 及FastAPI 的异同 .122
7.4 这三种Web 开发框架在其他方面的性对比 123
7.5 这三个框架在数据库方面的异同 124
7.6 如何在这三种框架之间选择 .125
7.7 其他一些Python Web 框架 125
7.8 小结 126
第三部分 制作网站
第8 章 Web 层 129
8.1 预览 129
8.2 插曲:从上到下、从下到上,还是从内到外 130
8.3 REST 式的设计 132
8.4 网站的文件与目录布局 134
8.5 网站的第一版代码 .137
8.6 处理HTTP 请求 .140
8.7 在顶级app 下面添加多个次一级的subrouter .142
8.8 构建Web 层 143
8.9 定义数据模型 143
8.10 Stub Data 与Fake Data .144
8.11 先确定一些常见的操作 144
8.12 建立Fake Data .145
8.13 开始测试 151
8.14 利用FastAPI 自动生成的测试表单作测试 .152
8.15 Web 层应该通过Service 层做中介,而不应直接与Data 层通信 155
8.16 分页与排序 .156
8.17 小结 158
第9 章 Service 层 . 159
9.1 预览 159
9.2 如何确定网站所应提供的服务 159
9.3 网站的文件布局 .160
9.4 确保网站安全 161
9.5 实现Service 层中的各种函数161
9.6 测试 163
9.7 Service 层的其他事务 165
9.7.1 日志记录 166
9.7.2 指标测量、监控、可观测性 166
9.7.3 追踪 .167
9.7.4 杂项 .167
9.8 小结 168
第10 章 Data 层 . 169
10.1 预览 169
10.2 DB-API .169
10.3 SQLite 172
10.4 网站的文件布局 174
10.5 让网站运作起来 175
10.6 测试 181
10.6.1 全面测试 182
10.6.2 单元测试 193
10.7 小结 196
第11 章 认证与授权 197
11.1 预览 197
11.2 又得跑个题:我们真的需要做认证吗 198
11.3 认证方式 199
11.4 全局认证:让所有人共用密语 .200
11.5 对每一位访问者分别做认证 204
11.6 采用新式技术给每一位访问者分别做认证 .205
11.6.1 OAuth2 206
11.6.2 表示用户的User 模型 .208
11.6.3 实现Data 层中与User 有关的操作 208
11.6.4 实现一套与Data 层中的User 操作类似的Fake 操作 .210
11.6.5 实现Service 层中与User 有关的操作 .212
11.6.6 实现Web 层中与User 有关的操作 214
11.6.7 测试 216
11.6.8 修改顶层的主程序 216
11.6.9 回顾早前实现的认证步骤 .217
11.6.10 JWT 218
11.6.11 经由OIDC 协议,通过第三方账号做认证.219
11.7 授权 220
11.8 中间件 222
11.8.1 CORS(跨域资源共享) 222
11.8.2 通过第三方包实现认证与授权 224
11.9 小结 225
第12 章 测试 227
12.1 预览 227
12.2 对Web API 做测试 .227
12.3 对哪里的代码做测试 .228
12.4 如何做测试 .229
12.5 Pytest .230
12.6 网站的文件布局 231
12.7 自动化的单元测试 232
12.7.1 Mocking .232
12.7.2 Test Double 与Fake 237
12.7.3 对Web 层做测试 239
12.7.4 对Service 层做测试 .242
12.7.5 对Data 层做测试 244
12.8 自动化的集成测试 246
12.9 Repository 模式 248
12.10 自动化的全面测试 248
12.11 安全测试 251
12.12 负载测试 252
12.13 小结 .253
第13 章 将网站部署到生产环境之中 255
13.1 预览 255
13.2 部署网站 255
13.2.1 采用多个Worker 来运行服务器 .256
13.2.2 HTTPS .257
13.2.3 Docker .257
13.2.4 云服务 .258
13.2.5 Kubernetes .259
13.3 改善网站的性能 259
13.3.1 Async 260
13.3.2 缓存 260
13.3.3 数据库、文件、内存 260
13.3.4 队列 261
13.3.5 Python 本身 261
13.4 疑难排解 262
13.4.1 确定这是哪一类问题 262
13.4.2 查看日志 263
13.4.3 收集指标 263
13.5 小结 264
第四部分 漫谈
第14 章 数据库、数据科学以及一点点AI 267
14.1 预览 267
14.2 数据存储方案 268
14.3 关系型数据库及SQL 269
14.3.1 SQLAlchemy 269
14.3.2 SQLModel .272
14.3.3 SQLite .272
14.3.4 PostgreSQL 273
14.3.5 EdgeDB 273
14.4 非关系型数据库(NoSQL 数据库) .274
14.4.1 Redis 275
14.4.2 MongoDB 275
14.4.3 Cassandra 275
14.4.4 Elasticsearch .275
14.5 SQL 数据库中的NoSQL 性 275
14.6 数据库负载测试 277
14.7 数据科学与人工智能(AI) .279
14.8 小结 282
第15 章 文件 283
15.1 预览 283
15.2 如何支持分块传输 283
15.3 上传文件 283
15.3.1 通过File() 实现文件上传 284
15.3.2 通过UploadFile 实现文件上传 285
15.4 下载文件 287
15.4.1 FileResponse 287
15.4.2 StreamingResponse 288
15.5 提供静态文件服务 289
15.6 小结 291
第16 章 表单与模板 . 293
16.1 预览 293
16.2 表单 293
16.3 模板 296
16.4 小结 300
第17 章 数据发现与数据可视化 301
17.1 预览 301
17.2 Python 与数据处理 .301
17.3 读取并输出PSV 格式的文本数据 302
17.3.1 用csv 包读取PSV 文件 .303
17.3.2 用python-tabulate 包读取PSV 文件 304
17.3.3 用pandas 读取PSV 文件并输出其内容 .305
17.4 读取SQLite 数据库中的数据并以网页的形式显示 306
17.4.1 与图表显示有关的软件包 .307
17.4.2 图表示例1:试用Plotly 308
17.4.3 图表示例2:绘制直方图 311
17.4.4 与地图显示有关的软件包 .312
17.4.5 地图示例 314
17.5 小结 315
第18 章 游戏 317
18.1 预览 317
18.2 与游戏制作有关的Python 包 317
18.3 拆分游戏逻辑 318
18.4 游戏的设计 .319
18.5 Web 层的第一部分工作:实现游戏的初始化 320
18.6 Web 层的第二部分工作:实现游戏的后续步骤 322
18.7 Service 层的第一部分工作:实现游戏的初始化 324
18.8 Service 层的第二部分工作:判断玩家猜测得是否正确325
18.9 测试 326
18.10 Data 层的工作:实现游戏的初始化 327
18.11 开始玩这个猜单词游戏 .327
18.12 小结 .329
附录A 延伸阅读 . 331
附录B 用作示例数据的神秘生物及探索者 335

商品参数
基本信息
出版社 中国电力出版社
ISBN 9787519899585
条码 9787519899585
编者 [美] 比尔·卢巴诺维奇(Bill Lubanovic) 著 爱飞翔 译 著
译者 爱飞翔
出版年月 2025-06-01 00:00:00.0
开本 16开
装帧 平装
页数 360
字数 471000
版次 1
印次 1
纸张 一般胶版纸
商品评论

暂无商品评论信息 [发表商品评论]

商品咨询

暂无商品咨询信息 [发表商品咨询]