描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302609285
从Flask基础到Flask进阶,再到企业级论坛项目实战以及WebSocket在线聊天系统实战,囊括真实工作场景中绝大部分技术要点。
初学者可以夯实基础,程序员可以提升技能,提高竞争力。
《Flask Web全栈开发实战》的目标读者是没有 Flask 开发经验或者有少量 Flask 使用经验的读者。通过学习可以熟练掌握 Flask Web 开发技术,包括但不限于以下岗位。
? ①Python 全栈开发工程师:可以掌握前后端开发的技术要点,能快速开发 Web 应用项目。
? ②测试开发工程师:能有效提高自动化测试平台的开发能力。
? ③运维开发工程师:能有效提高自动化运维平台的开发能力,以及阅读相关开源项目源码的能力。
? ④数据/算法工程师:可以结合算法模型,将模型服务化,
《Flask Web全栈开发实战》围绕 Flask 框架,详细地讲解了使用 Flask 开发网站的各项技术要点。全书共 11 章,首先讲解了Flask 项目开发中的环境搭建、项目配置、URL 与视图、Jinja2 模板、数据库、表单、Flask 进阶、缓存系统等。然后拓展了知识面,在项目实战中分别介绍了 RESTful API、邮箱验证码、Redis 缓存、Celery 异步任务、登录授权机制、角色权限管理、富文本编辑器、头像管理、文件上传以及 Nginx、Gunicorn 部署
等技术要点;在 WebSocket 实战中讲解了 Flask 中使用 WebSocket 开发项目的全部过程。后讲解了 Flask 异步编程。通过《Flask Web全栈开发实战》的学习,读者能够熟练掌握 Flask Web 开发技术。
《Flask Web全栈开发实战》适合没有 Flask 开发经验或者 Flask 基础比较薄弱、想要系统学习 Flask Web 开发技术的读者 学习。
第1章 Flask前奏 1
1.1 Flask简介 1
1.2 环境搭建 1
1.2.1 Python环境 2
1.2.2 Flask版本 3
1.2.3 开发软件 4
第2章 项目配置 9
2.1 Debug模式、Host、Port配置 9
2.1.1 Debug模式 9
2.1.2 设置Host和Port 13
2.2 在app.config中添加配置 18
2.2.1 使用app.config配置 18
2.2.2 使用Python配置文件 19
第3章 URL与视图 20
3.1 定义URL 21
3.1.1 定义无参数的URL 22
3.1.2 定义有参数的URL 22
3.2 HTTP请求方法 27
3.3 页面重定向 29
3.4 构造URL 30
第4章 Jinja2模板 32
4.1 模板的基本使用 32
4.1.1 渲染模板 32
4.1.2 渲染变量 34
4.2 过滤器和测试器 38
4.2.1 自定义过滤器 38
4.2.2 Jinja2内置过滤器 39
4.2.3 测试器 42
4.3 控制语句 44
4.3.1 if判断语句 44
4.3.2 for循环语句 45
4.4 模板结构 51
4.4.1 宏和import语句 51
4.4.2 模板继承 52
4.4.3 引入模板 54
4.5 模板环境 55
4.5.1 模板上下文 55
4.5.2 全局函数 56
4.5.3 Flask模板环境 57
4.6 其他 58
4.6.1 转义 58
4.6.2 加载静态文件 59
4.6.3 闪现消息 59
第5章 数据库 61
5.1 准备工作 61
5.1.1 MySQL软件 61
5.1.2 Python操作MySQL驱动 61
5.1.3 Flask-SQLAlchemy 62
5.2 Flask-SQLAlchemy的基本使用 62
5.2.1 连接MySQL 62
5.2.2 ORM模型 63
5.2.3 CRUD操作 66
5.3 表关系 70
5.3.1 外键 71
5.3.2 一对多关系 71
5.3.3 一对一关系 74
5.3.4 多对多关系 75
5.3.5 级联操作 77
5.4 ORM模型迁移 80
5.4.1 创建迁移对象 80
5.4.2 初始化迁移环境 81
5.4.3 生成迁移脚本 81
5.4.4 执行迁移脚本 81
第6章 表单 83
6.1 表单验证 83
6.1.1 表单类编写 85
6.1.2 视图函数中使用表单 87
6.1.3 自定义验证字段 89
6.2 渲染表单模板 90
6.3 CSRF攻击 93
第7章 Flask进阶 98
7.1 类视图 98
7.1.1 基本使用 98
7.1.2 方法限制 99
7.1.3 基于方法的类视图 100
7.1.4 添加装饰器 101
7.2 蓝图 101
7.2.1 基本使用 101
7.2.2 寻找模板 102
7.2.3 寻找静态文件 102
7.3 cookie和session 103
7.3.1 关于cookie和session的介绍 103
7.3.2 Flask中使用cookie和session 104
7.4 request对象 105
7.5 Flask信号机制 106
7.5.1 自定义信号 106
7.5.2 Flask内置信号 107
7.6 常用钩子函数 108
7.7 上下文 109
7.7.1 线程隔离对象 110
7.7.2 LocalStack类 111
7.7.3 LocalProxy类 114
第8章 缓存系统 117
8.1 Memcached 117
8.1.1 安装Memcached 117
8.1.2 telnet操作Memcached 118
8.1.3 Python操作Memcached 121
8.1.4 Memcached的安全性 122
8.2 Redis 122
8.2.1 Redis使用场景 122
8.2.2 Redis和Memcached比较 123
8.2.3 Redis在Ubuntu中的安装与
使用 123
8.2.4 Redis操作命令 125
8.2.5 同步数据到硬盘 130
8.2.6 设置密码 131
8.2.7 Python操作Redis 132
第9章 项目实战 134
9.1 创建项目 135
9.1.1 config.py文件 137
9.1.2 exts.py文件 139
9.1.3 blueprints模块 140
9.1.4 models模块 142
9.2 创建用户相关模型 143
9.2.1 创建权限和角色模型 143
9.2.2 创建权限和角色 146
9.2.3 创建用户模型 150
9.2.4 创建测试用户 154
9.2.5 创建管理员 155
9.3 注册 155
9.3.1 渲染注册模板 155
9.3.2 使用Flask-Mail发送邮箱验证码 160
9.3.3 使用Flask-Caching和Redis缓存
验证码 165
9.3.4 使用Celery发送邮件 167
9.3.5 RESTful API 170
9.3.6 CSRF保护 173
9.3.7 使用AJAX获取邮箱验证码 173
9.3.8 实现注册功能 176
9.4 登录 179
9.5 发布帖子 182
9.5.1 添加帖子相关模型 183
9.5.2 初始化板块数据 184
9.5.3 渲染发布帖子模板 184
9.5.4 使用wangEditor富文本编辑器 186
9.5.5 未登录限制 191
9.5.6 服务端实现发帖功能 193
9.5.7 使用AJAX发布帖子 194
9.6 首页 195
9.6.1 生成帖子测试数据 197
9.6.2 使用Flask-Paginate实现分页 198
9.6.3 过滤帖子 200
9.7 帖子详情 202
9.7.1 动态加载帖子详情数据 202
9.7.2 发布评论 203
9.8 个人中心 205
9.8.1 使用Flask-Avatars生成随机
头像 206
9.8.2 修改导航条上的登录状态 209
9.8.3 根据用户显示个人中心 210
9.8.4 修改用户信息 212
9.9 CMS管理系统 215
9.9.1 CMS入口 215
9.9.2 权限管理 216
9.9.3 员工管理页面 219
9.9.4 添加员工 221
9.9.5 编辑员工 223
9.9.6 管理前台用户 225
9.9.7 帖子管理 228
9.9.8 评论管理 230
9.9.9 板块管理 231
9.10 错误处理 231
9.11 日志 233
9.11.1 loggers模块 233
9.11.2 handlers模块 234
9.11.3 filters模块 235
9.11.4 formatters模块 236
9.12 部署 237
9.12.1 导出依赖包 237
9.12.2 使用Git上传代码 237
9.12.3 生产环境的配置 241
9.12.4 安装常用软件 241
9.12.5 配置网站 243
9.12.6 使用Gunicorn部署网站 244
9.12.7 使用Nginx部署网站 246
9.12.8 压力测试 249
第10章 WebSocket实战 252
10.1 安装相应的包 253
10.2 创建SocketIO对象 253
10.3 实现登录 254
10.4 连接和取消连接 257
10.5 获取在线用户 258
10.6 实现单聊 259
10.7 实现群聊 260
10.8 部署项目 261
第11章 Flask异步编程 263
11.1 asyncio标准库 263
11.2 aiohttp库 265
11.3 异步版Flask安装与异步编程
性能 266
11.3.1 安装异步版Flask 266
11.3.2 Flask异步编程性能 266
11.3.3 实战—异步发送HTTP请求 267
11.3.4 使用异步SQLAlchemy 269
11.3.5 Jinja2开启异步支持 271
评论
还没有评论。