高级检索结果页
欢迎来到工程科技数字图书馆
登录 | 注册
 
您当前的位置:图书 > FastAPI Web开发入门、进阶与实战

FastAPI Web开发入门、进阶与实战

这是一本从实战角度介绍FastAPI web开发的入门与进阶型技术书。本书没有过多的理论介绍,完全从一线工作角度入手,介绍日常web开发需要掌握的相关知识。本书共分为4篇16章:
第1篇是基础篇,主要介绍FastAPI的基础知识,包括FastAPI的基本信息、安装使用、常规操作、中间件、数据库相关内容。作为初学者,掌握这部分内容就可以快速上手使用FastAPI,处理各种日常问题。
第二篇是进阶篇,主要围绕与FastAPI相关的高级技能展开,包括异常处理、功能扩展、安全认证、性能、测试等相关内容。
第三篇是实战篇,主要从案例的角度对FastAPI在典型应用场景中的落地进行分享,包括短链应用、websocket、基于公众号的挂号系统等应用场景。
第四篇是部署篇,这部分重点介绍如何实现FastAPI的自动化部署,这数据高阶人员必备技能。本篇提供了三种自动化部署方式。

封面
前折页
书名页
版权
前言
第1章 初识FastAPI
 1.1 FastAPI框架概述
  1.1.1 FastAPI与其他Web框架
  1.1.2 FastAPI的特性
 1.2 异步编程基础
  1.2.1 并发编程机制
  1.2.2 并发与并行
  1.2.3 同步与异步
  1.2.4 阻塞与非阻塞
 1.3 asyncio协程概念
 1.4 asyncio协程简单应用
第2章 初试FastAPI
 2.1 搭建开发环境
  2.1.1 安装Python语言包
  2.1.2 PyCharm的安装
  2.1.3 PyCharm IDE配置解析器
  2.1.4 PyCharm IDE解析器的切换
  2.1.5 PIP安装源的设置
 2.2 新建FastAPI项目
  2.2.1 新建简单项目
  2.2.2 项目依赖库的安装
 2.3 简单项目介绍
  2.3.1 创建app实例对象
  2.3.2 添加API请求路由注册
  2.3.3 添加后端渲染模板路由
  2.3.4 启动服务运行
  2.3.5 uvicorn参数说明
  2.3.6 查看交互式API文档
第3章 FastAPI基础入门
 3.1 app应用配置参数详解
  3.1.1 开启Debug模式
  3.1.2 关于API交互式文档参数
  3.1.3 关闭交互式文档访问
  3.1.4 全局routes参数说明
  3.1.5 全局异常/错误捕获
 3.2 API端点路由注册和匹配
  3.2.1 路由节点元数据
  3.2.2 路由URL匹配
  3.2.3 基于APIRouter实例的路由注册
 3.3 同步和异步API端点路由
  3.3.1 同步API端点路由
  3.3.2 异步API端点路由
 3.4 多应用挂载
  3.4.1 主从应用挂载
  3.4.2 挂载其他WSGI应用
 3.5 自定义配置swagger_ui
 3.6 应用配置信息读取
  3.6.1 基于文件读取配置参数
  3.6.2 基于Pydantic和.env环境变量读取配置参数
  3.6.3 给配置读取加上缓存
 3.7 API端点路由函数参数
  3.7.1 路径操作及路径函数
  3.7.2 Path参数
  3.7.3 Query参数
  3.7.4 Body参数
  3.7.5 Form数据和文件处理
  3.7.6 Header参数
  3.7.7 Cookie参数设置和读取
 3.8 请求报文
  3.8.1 Request对象
  3.8.2 更多Request属性信息
 3.9 响应报文
  3.9.1 HTTP状态码分类
  3.9.2 指定HTTP状态码
  3.9.3 使用response_model定义响应报文内容
  3.9.4 Response类型
  3.9.5 自定义Response类型
 3.10 后台异步任务执行
 3.11 应用启动和关闭事件
第4章 FastAPI异常及错误
 4.1 HTTPException异常
  4.1.1 HTTPException简单源码分析
  4.1.2 HTTPException的使用
  4.1.3 覆盖HTTPException异常处理
 4.2 RequestValidationError错误
  4.2.1 RequestValidationError的使用
  4.2.2 覆盖RequestValidationError错误处理
 4.3 自定义异常
  4.3.1 自定义异常的实现
  4.3.2 自定义内部错误码和异常
 4.4 中间件抛出自定义异常
第5章 Pydantic数据模型管理
 5.1 Pydantic介绍
 5.2 Pydantic的使用
  5.2.1 模型常见数据类型
  5.2.2 模型参数必选和可选
  5.2.3 模型多层嵌套
  5.2.4 模型对象实例化
  5.2.5 模型对象的转换
  5.2.6 模型对象的复制
  5.2.7 异常信息的捕获
  5.2.8 用Field()函数扩展更多复杂验证
  5.2.9 自定义验证器
  5.2.10 自定义验证器的优先级
  5.2.11 多字段或模型共享校验器
  5.2.12 root_validator根验证器
 5.3 Pydantic在FastAPI中的应用
  5.3.1 模型类和Body的请求
  5.3.2 模型类和依赖注入关系
  5.3.3 模型Config类和ORM转化
第6章 FastAPI依赖注入机制详解
 6.1 依赖注入框架
 6.2 依赖项及其声明方式
  6.2.1 函数式依赖项
  6.2.2 类方式依赖项
  6.2.3 多个依赖项注入和依赖项传参
 6.3 多层依赖项嵌套注入
 6.4 多个依赖对象注入
 6.5 不同位置上的依赖项
  6.5.1 全局依赖项的注入
  6.5.2 路径操作依赖项的注入
  6.5.3 路由分组依赖项的注入
第7章 FastAPI中间件
 7.1 HTTP请求中间件
 7.2 @app.middleware装饰器中间件
 7.3 CORSMiddleware跨域中间件
  7.3.1 跨域中间件的使用
  7.3.2 跨域中间件源码分析
 7.4 其他中间件
  7.4.1 HTTPSRedirectMiddleware中间件
  7.4.2 TrustedHostMiddleware中间件
 7.5 自定义中间件
  7.5.1 基于BaseHTTPMiddleware自定义中间件
  7.5.2 日志追踪链路ID
  7.5.3 IP白名单中间件
  7.5.4 基于中间件获取响应报文内容
第8章 数据库的应用
 8.1 数据库基础
  8.1.1 SQL概述
  8.1.2 SQL数据库
  8.1.3 NoSQL数据库
 8.2 Python操作SQLite数据库
  8.2.1 创建并链接到数据库
  8.2.2 游标对象操作数据
 8.3 ORM操作数据库
 8.4 SQLAlchemy库
  8.4.1 数据驱动异步和同步说明
  8.4.2 SQLAlchemy同步使用方式
  8.4.3 SQLAlchemy异步使用方式
  8.4.4 SQLAlchemy ORM反向生成模型
 8.5 SQLModel库
  8.5.1 SQLModel同步使用方式
  8.5.2 SQLModel异步使用方式
 8.6 在FastAPI中整合异步SQLAlchemy处理
  8.6.1 需求分析和结构规划
  8.6.2 应用配置信息读取
  8.6.3 配置数据库引擎
  8.6.4 使用yield管理会话依赖项
  8.6.5 定义表模型
  8.6.6 表模型CRUD封装
  8.6.7 创建FastAPI实例并完成表创建
  8.6.8 定义对外可见的API
  8.6.9 完善对外可见的API
  8.6.10 Alembic数据库版本管理
 8.7 Redis数据库及aioredis使用
  8.7.1 连接Redis数据库
  8.7.2 Redis客户端对象实例化
  8.7.3 Redis基本缓存的应用
  8.7.4 Redis发布订阅的应用
  8.7.5 Redis分布式锁的应用
第9章 安全认证机制
 9.1 OpenAPI规范
 9.2 基于标准HTTP的身份验证方案
  9.2.1 HTTPBasic基本认证方案
  9.2.2 HTTPDigest摘要认证方案
 9.3 基于APIKey的特定密钥方案
 9.4 基于OAuth 2的授权机制颁发令牌方案
  9.4.1 JWT组成结构
  9.4.2 JWT应用实践
  9.4.3 OAuth 2参数说明
  9.4.4 OAuth 2主体角色
  9.4.5 客户端模式
  9.4.6 密码模式
  9.4.7 授权码模式
  9.4.8 简化模式
第10章 短链应用实战
 10.1 应用开发背景
 10.2 应用系统功能需求描述
 10.3 项目代码编写
  10.3.1 项目规划
  10.3.2 应用配置信息读取
  10.3.3 配置数据库引擎
  10.3.4 使用yield管理会话依赖项
  10.3.5 定义表模型
  10.3.6 用户信息表CURD封装
  10.3.7 短链信息表CURD封装
  10.3.8 创建FastAPI实例并初始化表
  10.3.9 创建测试账号
  10.3.10 定义短链重定向接口
  10.3.11 定义短链生成接口
  10.3.12 将子路由添加到根路由并启动服务
第11章 WebSocket+Vue简易聊天室实战
 11.1 WebSocket简介
 11.2 项目系统描述
 11.3 项目代码编写
  11.3.1 项目代码结构
  11.3.2 前端页面开发
  11.3.3 后端开发
  11.3.4 跨进程WebSocket通信
第12章 预约挂号系统实战
 12.1 应用开发背景及系统功能需求
 12.2 项目框架结构规划
 12.3 使用路由分组模块化程序
  12.3.1 APIRouter参数说明
  12.3.2 APIRouter路由分组创建
  12.3.3 视图函数绑定
  12.3.4 APIRouter路由分组注册
 12.4 数据表模型设计
  12.4.1 数据库安装
  12.4.2 数据表设计
  12.4.3 模型类逆向生成
  12.4.4 数据库引擎配置
 12.5 后端项目基础框架搭建
  12.5.1 数据库配置
  12.5.2 定制统一API内容规范
  12.5.3 定制全局异常/错误处理
  12.5.4 基于中间件日志记录
 12.6 关键业务API实现
  12.6.1 微信登录授权
  12.6.2 获取首页医院信息
  12.6.3 获取医生列表信息
  12.6.4 获取医生排班信息
  12.6.5 获取排班信息详情
  12.6.6 订单提交并支付
  12.6.7 未支付订单再次支付
  12.6.8 微信支付回调
  12.6.9 历史预约详情列表接口
  12.6.10 其他业务接口说明
 12.7 超时订单处理
  12.7.1 消息队列说明
  12.7.2 AMQP介绍
  12.7.3 本地安装RabbitMQ
  12.7.4 RabbitMQ简单应用
  12.7.5 RabbitMQ死信队列
  12.7.6 订单超时后自动取消的实现
 12.8 同步转异步处理
  12.8.1 asgiref转换库介绍
  12.8.2 asgiref转换库应用
第13章 基于Pytest的API测试
 13.1 Pytest简单应用
  13.1.1 unittest和Pytest的对比
  13.1.2 pytest.fixture装饰器的使用
  13.1.3 测试配置文件conftest.py
 13.2 用FastAPI进行API单元测试
  13.2.1 基于TestClient的单元测试
  13.2.2 基于Httpx的异步单元测试
第14章 生产环境部署详解
 14.1 Linux服务器下部署应用程序
  14.1.1 分配具有root权限的普通用户
  14.1.2 Linux系统上安装Python 3
  14.1.3 基于pyenv管理Python版本
  14.1.4 基于pipenv管理虚拟环境
  14.1.5 生成依赖项配置文件
  14.1.6 基于Gunicorn+Uvicorn的服务部署
  14.1.7 基于Supervisor的服务进程管理
  14.1.8 基于OpenResty的反向代理
  14.1.9 PostgreSQL数据库的安装
 14.2 基于SVN自动化部署
 14.3 基于Docker进行服务部署
  14.3.1 Docker的安装和常用命令
  14.3.2 基于Dockerfile构建镜像
  14.3.3 Docker容器化部署与运行
 14.4 Docker下的环境变量
  14.4.1 基于OS标准库
  14.4.2 基于Pydantic中的BaseSettings自动绑定并解析环境变量
  14.4.3 Docker下的环境变量读取
 14.5 基于Docker Compose进行服务编排
  14.5.1 多服务容器独立运行部署
  14.5.2 多Docker容器一键编排部署
 14.6 基于Gogs+Drone进行可持续集成
  14.6.1 通过Gogs搭建自助Git服务
  14.6.2 通过Drone搭建持续集成和持续交付
第15章 FastAPI实战常见问题
 15.1 依赖注入项的传参
 15.2 自定义插件开发
  15.2.1 插件模板基类的定义
  15.2.2 实现类似Flask钩子事件插件
 15.3 body重复消费引发阻塞问题
  15.3.1 阻塞问题复现
  15.3.2 解决方案
 15.4 全局request变量
 15.5 同步和异步相互转换
  15.5.1 asgiref转换包
  15.5.2 asyncer转换包
 15.6 Model响应报文的排序
 15.7 同步和异步邮件发送
  15.7.1 同步方式
  15.7.2 异步方式
 15.8 基于Jaeger实现分布式链路追踪
  15.8.1 分布式链路追踪的简单定义
  15.8.2 OpenTracing数据模型
  15.8.3 Jaeger介绍
  15.8.4 Jaeger安装和应用
  15.8.5 基于Jaeger SDK实现链路追踪
  15.8.6 FastAPI整合Jaeger SDK
  15.8.7 基于Jaeger SDK的跨服务链路统计
 15.9 基于Sentry实现错误信息收集
  15.9.1 Sentry安装和配置
  15.9.2 FastAPI框架中引入Sentry
推荐阅读
后折页
封底

机工科技数字图书馆