Python FastAPI Web开发从入门到项目实战(视频版)
作者:刘瑜,安义,陈逸怀,喻小菲
出版社:华中科技大学出版社
出版时间:2022-10-01
ISBN:9787568087223
定价:¥99.00
第1部分 基础篇
第1章 认识FastAPI 3
1.1 Web基础知识 3
1.1.1 Web简介 3
1.1.2 超文本传输协议基础 7
1.2 初识FastAPI 10
1.2.1 FastAPI简介 10
1.2.2 安装FastAPI 11
1.2.3 验证安装结果 12
1.3 Hello三酷猫 13
1.3.1 第一个程序,Hello三酷猫 13
1.3.2 OpenAPI文档 14
1.3.3 Python中的异步语法 15
1.4 FastAPI框架构成 16
1.4.1 FastAPI框架功能 16
1.4.2 Python类型提示 17
1.4.3 Pydantic框架 21
1.4.4 Starlette框架 24
1.5 PyCharm代码编辑工具 25
1.5.1 PyCharm简介及安装 25
1.5.2 PyCharm常用功能 30
1.6 习题及实验 34
?
第2章 认识请求 35
2.1 请求原理 35
2.2 路径参数 36
2.2.1 简单路径参数 37
2.2.2 有类型的路径参数 38
2.2.3 有类型路径参数的数据验证 38
2.2.4 路由访问顺序 39
2.2.5 使用枚举类型参数 40
2.3 查询参数 42
2.3.1 标准查询参数 42
2.3.2 可选查询参数 43
2.3.3 必选查询参数 44
2.3.4 参数类型转换 45
2.3.5 同时使用路径参数和查询参数 46
2.3.6 案例:三酷猫卖海鲜(一) 47
2.4 请求体 48
2.4.1 定义请求体的数据模型 49
2.4.2 同时使用路径参数、查询参数和请求体 51
2.4.3 可选的请求体参数 54
2.4.4 同时使用多个请求体 56
2.4.5 常规数据类型作为请求体使用 58
2.5 表单和文件 59
2.5.1 表单数据 59
2.5.2 文件上传 60
2.5.3 表单和多文件上传 62
2.6 案例:三酷猫卖海鲜(二) 62
2.7 习题及实验 64
第3章 认识响应 66
3.1 响应原理 66
3.2 响应模型 67
3.2.1 认识响应模型 67
3.2.2 业务数据模型 71
3.2.3 简化数据模型定义 72
3.2.4 使用多个响应模型 73
?
3.3 内置响应类 74
3.3.1 纯文本响应 75
3.3.2 HTML响应 75
3.3.3 重定向响应 77
3.3.4 JSON响应 78
3.3.5 通用响应 79
3.3.6 流响应 80
3.3.7 文件响应 81
3.4 案例:三酷猫卖海鲜(三) 81
3.5 习题及实验 83
第4章 深入请求和响应 84
4.1 在请求中使用类 84
4.1.1 查询参数类 84
4.1.2 路径参数类 90
4.1.3 Cookie参数类 91
4.1.4 Header参数类 93
4.1.5 Field类 95
4.1.6 实现复杂的请求数据模型 97
4.1.7 直接使用请求类 101
4.2 自定义响应返回数据 102
4.2.1 自定义Cookie数据 102
4.2.2 自定义Header数据 103
4.2.3 默认响应状态码 104
4.2.4 自定义响应状态码 105
4.3 异常处理 106
4.3.1 异常类HttpException 106
4.3.2 全局异常处理器 108
4.3.3 内置异常处理器 110
4.4 中间件技术 112
4.4.1 自定义中间件 113
4.4.2 调用CORS中间件 113
4.4.3 调用UnicornMiddleware中间件 115
4.4.4 调用HTTPSRedirectMiddleware中间件 115
4.4.5 调用TrustedHostMiddleware中间件 116
4.4.6 调用GZipMiddleware中间件 118
4.5 案例:三酷猫卖海鲜(四) 118
4.6 习题及实验 120
第5章 依赖注入 121
5.1 依赖注入原理 121
5.2 使用函数实现依赖注入 122
5.3 使用类实现依赖注入 124
5.4 依赖注入的嵌套 125
5.5 在装饰器中使用依赖注入 127
5.6 依赖项中的yield 129
5.7 依赖类的可调用实例 131
5.8 案例:三酷猫卖海鲜(五) 133
5.9 习题及实验 134
第6章 数据库操作 135
6.1 SQLAlchemy基本操作 135
6.1.1 安装和连接 136
6.1.2 定义数据模型 137
6.1.3 定义关联关系 139
6.1.4 CRUD操作 143
6.1.5 直接使用SQL 145
6.2 连接MySQL 146
6.2.1 安装数据库驱动 146
6.2.2 创建项目并连接SQLAlchemy 146
6.2.3 创建SQLAlchemy数据库模型 147
6.2.4 创建Pydantic数据模型 148
6.2.5 实现数据操作 149
6.2.6 实现FastAPI请求函数 151
6.3 连接MongoDB 154
6.3.1 安装MongoDB 155
6.3.2 安装数据库驱动 157
6.3.3 实现MongoDB中的数据操作 158
6.4 连接Redis 160
6.4.1 安装Redis 161
6.4.2 安装数据库驱动 162
6.4.3 实现Redis中的数据操作 163
6.5 案例:三酷猫卖海鲜(六) 165
6.6 习题及实验 167
第7章 安全机制 169
7.1 安全机制基本功能 169
7.2 添加基于OAuth 2的安全机制 171
7.3 实现基于OAuth 2的安全机制 172
7.3.1 创建数据库应用 173
7.3.2 增加注册用户功能 175
7.3.3 生成令牌 178
7.3.4 增加用户登录功能 178
7.3.5 获取当前登录用户数据 180
7.4 习题及实验 182
第8章 异步技术 183
8.1 基本概念 183
8.1.1 进程/线程 183
8.1.2 阻塞/非阻塞 184
8.1.3 同步/异步 185
8.1.4 并发/并行 185
8.1.5 GIL 185
8.2 协程 186
8.2.1 事件循环加回调 186
8.2.2 基于生成器的协程 186
8.2.3 使用yield from 改进协程 187
8.2.4 原生协程 187
8.3 Asyncio库介绍 187
8.3.1 事件循环 188
8.3.2 协程 188
8.3.3 Future对象 189
8.3.4 Task和可等待对象 189
8.4 案例:三酷猫卖海鲜(七) 190
8.5 习题及实验 191
第9章 企业应用架构 193
9.1 应用程序和子应用 193
9.1.1 使用环境变量 193
9.1.2 应用事件处理 197
9.1.3 管理子应用 198
9.1.4 管理外部Web应用 200
9.2 应用模块管理 201
9.2.1 路由类 202
9.2.2 应用目录结构 202
9.3 页面模板技术 204
9.3.1 Jinja2模板入门 204
9.3.2 管理静态文件 206
9.4 案例:三酷猫卖海鲜(八) 207
9.5 习题及实验 210
第10章 测试与部署 211
10.1 测试工具 211
10.1.1 常规测试 211
10.1.2 分离测试代码 214
10.1.3 应用事件测试 215
10.1.4 依赖项测试 216
10.1.5 测试数据库 218
10.1.6 异步测试工具 219
10.2 部署程序 220
10.2.1 virtualenv和pip3 221
10.2.2 部署到Linux服务器 222
10.2.3 部署为后台进程 223
10.2.4 使用代理服务 225
10.3 案例:三酷猫海鲜项目测试 226
10.4 习题及实验 227
?
第2部分 实战篇
第11章 核酸采集平台:功能分析与设计 231
11.1 需求分析 231
11.2 系统设计 232
11.2.1 逻辑架构 232
11.2.2 技术架构 233
11.2.3 数据架构 234
11.3 任务分工 235
第12章 核酸采集平台:后端项目 236
12.1 后端项目环境搭建 236
12.2 后端项目目录结构 236
12.3 后端项目代码实现 238
12.3.1 主文件 238
12.3.2 配置文件 239
12.3.3 数据库引擎 239
12.3.4 登录认证模块 240
12.3.5 预约模块 244
12.3.6 登记模块 247
12.3.7 运行后端项目 250
12.4 后端项目部署 253
12.4.1 准备服务器环境 254
12.4.2 安装数据库环境 254
12.4.3 安装Python环境 255
12.4.4 上传项目文件 255
12.4.5 安装第三方库 255
12.4.6 部署为后台进程 256
12.4.7 验证部署环境 256
第13章 核酸采集平台:前端项目 262
13.1 前端开发环境搭建 262
13.2 管理端项目目录结构 262
13.3 管理端项目代码实现 263
13.4 管理端项目运行与发布 270
13.5 移动端项目目录结构 272
13.6 移动端项目代码实现 273
13.7 移动端运行与发布 275
附录A 在Win 10上安装MySQL数据库 277
附录B Vue.js使用介绍 290
附录C 附赠代码清单 309
后记 314