课程介绍
本课程将带领大家使用 Sanic 这个 Python 异步 IO Web 框架,以及 AIOMySQL、AIORedis 等异步库来开发一个支持高并发的 API 服务。学习完本课程,你会对 Python 的 AsyncIO 有一个透彻的理解,掌握如何异步处理 HTTP 请求和访问后端服务(MySQL、Redis),以及如何使用 Docker 来简化应用开发和部署。
本课程里所开发的围观 API 服务可作为本网校另外一门课程 Flutter 移动应用开发实战 里所开发的围观 APP 的后端 API 服务,有志于成为全栈工程师的同学可以选学。
课程地址
因不同平台收取的服务费不同,因此价格略有差异。大家可自由选择购买平台,内容都会同步更新。如有任何有关课程购买的疑问,可加入 QQ 群 729051923 咨询。
适用人群
有 Python 语言基础,想进入 Python 后端服务开发领域的同学。
课程资料
- 参考代码 包含技术讲解示例代码和实战项目代码
由于 GitHub 仓库代码更新(优化或修复 Bug)比课程内容快,因此课程里所讲代码跟仓库代码可能会有细微差别。
课程答疑
- 叽歪论坛 请在课程对应分类下提问
- QQ 讨论群 733208584
以上服务均为附赠,不保证答疑及时性。
课程目录
Sanic Web 框架:轻轻松松实现高并发
Python AsyncIO 介绍:异步 IO 编程 So Easy
- 为什么需要异步 IO?
- Python AsyncIO 进化史
- 高层 APIs
- 低层 APIs
Sanic 介绍
- 同步/异步、阻塞/非阻塞、并发/并行
- 安装 Sanic
- Hello World
- 跟 Flask 性能对比
配置和日志
- 配置来源
- 内置配置
- Python3 日志 API
- 内置 Logger
- 访问日志格式化参数
请求和响应
- Request 对象的属性
- RequestParameters 类型
- CIMultiDict 类型
- 自定义 query 参数解析方式
- 响应内容给请求方
Cookie 和 Session
- 什么是 Cookie 和 Session
- 在 Sanic 应用里操作 Cookie
- Cookie 属性
- Sanic 没有内置 Session 支持
路由
- 定义路由
- 路由参数
- 限定请求方式和 Host 请求头
- 构建 URL
- 严格匹配结尾 /
- 自定义路由名字
- 静态文件路由
蓝图
- 什么时候需要蓝图(Blueprint)
- 创建蓝图
- 注册蓝图
- 蓝图分组(BlueprintGroup)
- 蓝图还支持以下 Sanic 应用特性
版本化、异常处理、中间件和监听器
- 版本化
- 异常处理
- 中间件
- 监听器
WebSocket 和流
- WebSocket
- 流
SQLAlchemy SQL 工具包:告别裸写 SQL
介绍
- 主要特点
- ORM vs Core:连 Martin Fowler 都厌倦 ORM 了
引擎与连接
- 引擎(Engine)
- 连接池(Pool)
- 创建引擎和连接
- 使用引擎和连接
- 执行结果(ResultProxy)
- 结果行(RowProxy)
- 事务
定义及创建表
- 元数据(Metadata )
- 表(Table)
- 列(Column)
- 列默认值(客户端)
- 列默认值(服务端)
- 外键约束
- 唯一约束
- 主键约束
- 索引
- 访问表定义
- 创建和删除表
- 反射(Reflect)已有表的定义
生成及执行语句
- 语句(Statement)对象
- 插入
- 查询
- 更新
- 删除
手动构建语句
- 表别名(Alias)和列标签(Label)
- 操作符(Operator)
- 联结(Conjunction)
- 函数
- 类型转换(Cast)
- 文本 SQL
高级查询
- 排序和分页
- 分组
- 去重
- 连接(Join)
- 标量(Scalar)查询
- 关联子查询(Correlated Subquery)
- 集合(Set)查询
围观 API 服务开发:亲自动手才有收获
搭建应用骨架:麻雀虽小五脏俱全
- 创建项目及其 Python 虚拟环境
- 编写应用配置
- 编写应用入口
开发帐号 APIs
- JSON 响应
- 错误处理
- 注册/登录/退出 API
- 登录检查装饰器
- 查询已登录用户 API
- 编辑个人资料 API
- 发送手机验证码 API
- 使用 Postman 来测试 API
开发动态 APIs
- 上传文件 API
- 发布动态 API
- 删除动态 API
- 查询单个动态 API
- 已发布动态 API
- 赞/取消赞动态 API
- 赞过的动态 API
- 使用 Postman 来测试 API
开发用户 APIs
- 查询单个用户 API
- 关注/取消关注用户 API
- 正在关注的用户 API
- 粉丝 API
- 关注用户的动态 API
- 使用 Postman 来测试 API
Fire 管理命令编写
- Fire 命令行应用框架介绍
- 编写模型管理命令
APScheduler 定时任务运行
- 动态统计
- 用户统计
- APScheduler 定时任务调度框架介绍
- 编写定时任务管理命令
WebSocket 即时消息通信
- 编写 WebSocket 连接管理器
- 编写 WebSocket 请求处理器
- 支持多机分布式服务
Docker 应用部署:一次构建处处运行
Docker 介绍
- Docker 越来越流行的原因
- Docker Engine
- Docker 工作流程
Docker 镜像和容器
- 概念
- 分层存储
- Registry 和 Repository(仓库)
- Docker CLI 仓库操作
- Docker CLI 镜像管理
- Docker CLI 容器管理
Docker 镜像构建
- 两种构建方式
- Dockerfile 文件格式
- Dockerfile 指令
- 多阶段(Multi-stage)构建
Docker 存储
- 三种存储方式
- 卷
- 绑定挂载
- 临时文件系统
Docker 网络
- 介绍
- 网络驱动
- Bridge 网络
- Overlay 网络
- Host 网络
Docker Compose
- 适用场景
- 主要特性
- 用法示例
- Compose CLI
- Compose CLI 子命令
- Compose 配置文件
- 多机集群容器编排
使用 Docker 来简化围观 API 服务开发和部署
- 编写 Dockerfile 镜像构建文件
- 编写 Compose 应用部署文件
- 使用 Compose 来部署应用
- 在 VSCode 里使用远程容器来快速搭建开发环境