由于本文档不能加链接,更多课程资料和答疑等信息请查看此文(blog.jaggerwang.net/jwcourse-python-sanic-high-currency-service-develop-in-practice/)。iOS 上购买苹果会抽成 35%,请尽量在网站和安卓上购买,不影响在 iOS 上观看,谢谢!
课程介绍
性能无法与 C/C++、Java、Go 等静态编译型语言比美,还有全局锁限制的 Python 注定就不适合开发高并发服务?如果你还这样认为,那就 Out 了。Python 现在已经拥有强大和成熟的 `asyncio` 模块,通过使用异步 IO,能够大幅提升像 Web 服务这样的 IO 密集型应用的并发性能。本课程将带领大家使用 Sanic 这个 Python 异步 IO Web 框架,以及 AIOMySQL、AIORedis 等异步库来开发一个支持高并发的 API 服务。学习完本课程,你会对 Python 的 AsyncIO 有一个透彻的理解,掌握如何异步处理 HTTP 请求和访问后端服务(MySQL、Redis),以及如何使用 Docker 来简化应用开发和部署。
本课程里所开发的围观 API 服务可作为本网校另外一门课程“Flutter 移动应用开发实战”里所开发的围观 APP 的后端 API 服务,有志于成为全栈工程师的同学可以选学。
适用人群
有 Python 语言基础,想进入 Python 后端服务开发领域的同学。
课程目录
Sanic Web 框架:轻轻松松实现高并发
Python AsyncIO 介绍:异步 IO 编程 So Easy
- 为什么需要异步 IO?
- Python AsyncIO 进化史
- 高层 APIs
- 低层 APIs
- 同步/异步、阻塞/非阻塞、并发/并行
- 安装 Sanic
- Hello World
- 跟 Flask 性能对比
- 配置来源
- 内置配置
- Python3 日志 API
- 内置 Logger
- 访问日志格式化参数
- Request 对象的属性
- RequestParameters 类型
- CIMultiDict 类型
- 自定义 query 参数解析方式
- 响应内容给请求方
- 什么是 Cookie 和 Session
- 在 Sanic 应用里操作 Cookie
- Cookie 属性
- Sanic 没有内置 Session 支持
- 定义路由
- 路由参数
- 限定请求方式和 Host 请求头
- 构建 URL
- 严格匹配结尾 /
- 自定义路由名字
- 静态文件路由
- 什么时候需要蓝图(Blueprint)
- 创建蓝图
- 注册蓝图
- 蓝图分组(BlueprintGroup)
- 蓝图还支持以下 Sanic 应用特性
- 版本化
- 异常处理
- 中间件
- 监听器
- WebSocket
- 流
介绍
- 主要特点
- 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)查询
搭建应用骨架:麻雀虽小五脏俱全
- 创建项目及其 Python 虚拟环境
- 编写应用配置
- 编写应用入口
- JSON 响应
- 错误处理
- 注册/登录/退出 API
- 登录检查装饰器
- 查询已登录用户 API
- 编辑个人资料 API
- 发送手机验证码 API
- 使用 Postman 来测试 API
- 上传文件 API
- 发布动态 API
- 删除动态 API
- 查询单个动态 API
- 已发布动态 API
- 赞/取消赞动态 API
- 赞过的动态 API
- 使用 Postman 来测试 API
- 查询单个用户 API
- 关注/取消关注用户 API
- 正在关注的用户 API
- 粉丝 API
- 关注用户的动态 API
- 使用 Postman 来测试 API
- Fire 命令行应用框架介绍
- 编写模型管理命令
- 动态统计
- 用户统计
- APScheduler 定时任务调度框架介绍
- 编写定时任务管理命令
- 编写 WebSocket 连接管理器
- 编写 WebSocket 请求处理器
- 支持多机分布式服务
Docker 介绍
- Docker 越来越流行的原因
- Docker Engine
- Docker 工作流程
- 概念
- 分层存储
- Registry 和 Repository(仓库)
- Docker CLI 仓库操作
- Docker CLI 镜像管理
- Docker CLI 容器管理
- 两种构建方式
- Dockerfile 文件格式
- Dockerfile 指令
- 多阶段(Multi-stage)构建
- 三种存储方式
- 卷
- 绑定挂载
- 临时文件系统
- 介绍
- 网络驱动
- Bridge 网络
- Overlay 网络
- Host 网络
- 适用场景
- 主要特性
- 用法示例
- Compose CLI
- Compose CLI 子命令
- Compose 配置文件
- 多机集群容器编排
- 编写 Dockerfile 镜像构建文件
- 编写 Compose 应用部署文件
- 使用 Compose 来部署应用
- 在 VSCode 里使用远程容器来快速搭建开发环境
更新日志
- 2019-08-03 课程发布