书籍详情

Python FastAPI Web开发从入门到项目实战(视频版)

Python FastAPI Web开发从入门到项目实战(视频版)

作者:刘瑜,安义,陈逸怀,喻小菲

出版社:华中科技大学出版社

出版时间:2022-10-01

ISBN:9787568087223

定价:¥99.00

购买这本书可以去
内容简介
  FastAPI是基于Python语言的轻量级、成熟的Web后端开发框架。它除了简单易学、能提供自动生成的API文档外,还有一个重要优点是支持异步技术,其性能可以与NodeJS、GO语言相媲美,为Web项目高并发访问提供了更好的技术选择。另外,FastAPI定位为商业级的前后端分离开发框架,为前端技术提供了简单易用的调用接口。目前,国内外不少互联网企业,都采用该框架作为商业项目开发基础。本书第1部分为基础篇,系统介绍了FastAPI的使用;第2部分为实战篇,通过后端FastAPI框架与前端Vue.js框架的组合,给出了一个商业实战项目案例。
作者简介
  刘瑜,高级信息系统项目管理师,具有20多年C、ASP、BASIC、FoxBASE、Delphi、Java、C#、Python等编程经验,软件工程硕士、硕士企业导师、大数据重点实验室主任。开发过商业项目20余套,承担省部级千万级别项目5个,发表国内外论文10余篇。出版了《战神——软件项目管理深度实战》《NoSQL数据库入门与实践》《Python编程从零基础到项目实战》《Python编程从数据分析到机器学习实践》《算法之美——Python语言实现(微课视频版)》《Python Django Web从入门到项目实战》。安义,系统架构师,部门经理,具有20多年软件开发经验,主导过多个行业(医疗、教育、互联网、地产、游戏、汽车、餐饮等)的软件系统开发工作。熟悉多种开发语言和开发框架,具有丰富的软件实战经验。曾是腾讯公司负责袋鼠跳跳应用的研发负责人,目前为“三酷猫”团队的软件技术总监。《Python Django Web从入门到项目实战》第二作者。陈逸怀,温州城市大学教师教学发展中心主任、高级讲师,天津职业技术师范大学教育学博士研究生(自动化教育方向)、硕士生合作导师,软件设计师、技师,中国计算机学会会员,中国创客教育协会理事,温州市计算机学会理事,国家一类职业技能大赛裁判,青少年机器人大赛国家二级裁判,国家职业鉴定高级考评员。主编、副主编相关教材十本,主持并参与厅局级以上课题十余项,发表相关论文十余篇。喻小菲,专职软件高级工程师,10余年软件项目开发经验,FastAPI专业技术群群主,承担过物联网、游戏、网络安全等10多个商业项目。主要从事Python Web方向的开发工作,对FastAPI、Sanic、Django、Flask等网络框架均有研究,始终追踪Python开发最前沿的发展方向,具有丰富的Python Web开发经验。
目录

第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

猜您喜欢

读书导航