- 中国铁道出版社
- 9787113303075
- 1-1
- 502265
- 66259750-9
- 16开
- 2023-08
- 计算机类
- 高职
内容简介
本书是“十四五”高等职业教育新形态一体化教材,基于 Flask 2.2,采用理论与案例结
合的方式全面介绍 Flask 程序的基本结构、路由、Jinja2 模板引擎、数据交互、数据库访问等
Web 开发所需的相关知识及技能。
本书在基础知识讲解方面,从初学者的角度,以简明的语言、实用的案例讲解 Flask 相关
知识和技能;在案例设计方面,注重实践和知识的运用;在考查知识掌握方面,配有思考与练
习;最后,以综合案例整合所学知识,以帮助学生理解相关知识、掌握相关技能,最终达到学
以致用。
本书适合作为高职软件技术专业、移动应用开发专业、大数据技术等专业的教材,也可作
为广大 IT 技术人员和 Python Web 爱好者的参考书。
合的方式全面介绍 Flask 程序的基本结构、路由、Jinja2 模板引擎、数据交互、数据库访问等
Web 开发所需的相关知识及技能。
本书在基础知识讲解方面,从初学者的角度,以简明的语言、实用的案例讲解 Flask 相关
知识和技能;在案例设计方面,注重实践和知识的运用;在考查知识掌握方面,配有思考与练
习;最后,以综合案例整合所学知识,以帮助学生理解相关知识、掌握相关技能,最终达到学
以致用。
本书适合作为高职软件技术专业、移动应用开发专业、大数据技术等专业的教材,也可作
为广大 IT 技术人员和 Python Web 爱好者的参考书。
目录
目 录
第 1 章 Flask 概述.1
1.1 初识 Flask. 1
1.1.1 Flask 简介 1
1.1.2 Flask 扩展 2
1.1.3 Python 常用的 Web 框架 2
1.2 虚拟环境搭建 3
1.2.1 虚拟环境配置 3
1.2.2 PyCharm 安装及使用 . 4
1.3 编写 Flask 程序 . 7
1.3.1 安装 Flask 7
1.3.2 编写 Flask 程序 10
1.3.3 配置开发服务器 . 11
小结 12
思考与练习 12
第 2 章 Flask 视图技术 16
2.1 HTTP 请求 16
2.1.1 HTTP 请求报文 17
2.1.2 request 对象 . 18
2.1.3 URL 传递参数 20
2.1.4 URL 反转 . 23
2.2 HTTP 响应 24
2.2.1 响应报文 24
2.2.2 response 对象 . 25
2.2.3 URL 重定向 26
2.3 Cookie 和 Session 28
2.3.1 Cookie. 28
2.3.2 Session 30
2.4 Blueprint . 33
2.5 Flask 拦截器 . 35
2.6 Flask 上下文 . 37
2.6.1 请求上下文 38
2.6.2 应用上下文 38
小结 39
思考与练习 40
第 3 章 Jinja2 模板引擎 42
3.1 Jinja2 模板引擎概述 42
3.2 模板中的控制语句 . 44
3.2.1 if 控制语句 . 44
3.2.2 for 控制语句 . 45
3.3 Jinja2 的过滤器 . 47
3.3.1 Jinja2 模板内置的过滤器 . 47
3.3.2 自定义过滤器 48
3.4 模板中的宏及使用 . 49
3.4.1 宏的定义 49
3.4.2 宏的使用 50
3.4.3 宏的导入 50
3.5 静态文件的加载 . 51
3.6 模板的继承与包含 . 51
3.6.1 模板的继承 51
3.6.2 模板的包含 53
小结 54
思考与练习 54
第 4 章 Flask 表单. 57
4.1 使用 Flask 处理通用表单 . 57
4.2 使用 Flask-WTF 处理表单 61
4.2.1 Flask-WTF 的安装 . 61
4.2.2 定义表单类 61
4.2.3 表单类在模板中的渲染 . 63
4.3 文件上传 . 65
4.3.1 不使用 Flask-WTF 方式上传文件 65
4.3.2 使用 Flask-WTF 方式上传文件 66
4.4 富文本编辑器 68
4.4.1 安装及配置 68
4.4.2 创建表单类 69
4.4.3 创建模板文件 69
4.4.4 创建视图函数 70
小结 72
思考与练习 72
第 5 章 数据库操作基础 . 74
5.1 数据库基础 . 74
5.1.1 关系型数据库 74
5.1.2 非关系型数据库 . 75
5.2 Python 数据库框架 PyMySQL 76
5.2.1 添加数据 78
5.2.2 查询数据 78
5.2.3 更新数据 80
5.2.4 删除数据 81
5.3 Flask-SQLAlchemy . 81
5.3.1 对象关系映射 81
5.3.2 Flask-SQLAlchemy 的使用 . 82
5.4 登录与注册案例 . 89
5.4.1 案例说明 89
5.4.2 文件夹组织结构 . 89
5.4.3 模板文件 95
小结 97
思考与练习 97
第 6 章 数据库操作进阶 100
6.1 数据库表中的关系 100
6.1.1 一对一关系 . 100
6.1.2 一对多关系 102
6.1.3 多对多关系 . 104
6.2 数据库表的分页查询 107
6.2.1 视图函数中定义分页数据 . 108
6.2.2 定义分页显示格式 . 108
6.2.3 在模板文件中调用宏 . 109
6.3 Flask-Migrate 实现数据库迁移 . 110
6.4 Flask-SQLAcodegen . 111
小结 112
思考与练习 112
第 7 章 前后端分离开发 114
7.1 前后端分离开发概述 114
7.2 RESTful 115
7.3 Flask-RESTful 116
7.3.1 使用 Flask-RESTful 116
7.3.2 输入参数验证 118
7.3.3 输出格式 121
7.4 案例——在线学习笔记 . 122
7.4.1 项目目录组织结构及安装配置 122
7.4.2 数据库设计 124
7.4.3 在线笔记后端设计 . 125
7.4.4 在线笔记前端设计 . 127
小结 131
思考与练习 132
第 8 章 万家果业商城 . 134
8.1 需求分析及系统功能 134
8.2 系统预览 . 135
8.2.1 前台预览 135
8.2.2 后台预览 136
8.3 数据库设计 . 138
8.4 项目目录组织结构及配置 . 143
8.4.1 项目目录结构 143
8.4.2 配置文件 . 143
8.4.3 项目入口文件 144
8.4.4 app 包初始化文件 . 145
8.4.5 前台包文件 145
8.5 会员注册 . 146
8.5.1 创建用户注册页面表单 . 146
8.5.2 显示注册页面 149
8.5.3 验证并保存注册信息 . 151
8.6 会员登录 . 152
8.6.1 创建用户登录页面表单 . 152
8.6.2 显示注册页面 154
8.6.3 生成并获取验证码 . 156
8.6.4 验证并保存会员登录状态 . 157
8.7 首页模块设计 159
8.7.1 首页导航 159
8.7.2 商品展示 161
8.7.3 底部模板 163
8.8 商品详情 . 164
8.8.1 商品详情模板文件 . 164
8.8.2 商品详情路由文件 . 167
8.9 购物车 167
8.9.1 添加商品到购物车 . 167
8.9.2 显示购物车 168
8.9.3 购物车模板 168
8.10 订单添加及显示 . 174
8.10.1 订单添加 174
8.10.2 订单显示 175
8.11 商品搜索 . 176
8.11.1 商品搜索路由 . 176
8.11.2 搜索商品显示 177
8.12 项目配置及运行 . 179
小结 181
思考与练习 181
第 9 章 部署上线 . 182
9.1 部署前准备工作 . 182
9.1.1 选择云服务器 182
9.1.2 安装宝塔面板 184
9.1.3 CentOS 下升级 Python 184
9.2 创建站点及数据库 . 185
9.2.1 创建站点 185
9.2.2 创建数据库 186
9.2.3 启动项目 187
9.3 Nginx+Gunicorn+Flask+Supervisor 的使用 188
9.3.1 使用 Gunicorn 运行程序 188
9.3.2 使用 Nginx 提供反向代理 190
9.3.3 使用 Supervisor 管理进程 191
9.4 uWSGI+Nginx 的使用 193
9.4.1 使用 uWSGI 运行程序 . 193
9.4.2 配置 Nginx 195
小结 196
思考与练习 196
VI
第 1 章 Flask 概述.1
1.1 初识 Flask. 1
1.1.1 Flask 简介 1
1.1.2 Flask 扩展 2
1.1.3 Python 常用的 Web 框架 2
1.2 虚拟环境搭建 3
1.2.1 虚拟环境配置 3
1.2.2 PyCharm 安装及使用 . 4
1.3 编写 Flask 程序 . 7
1.3.1 安装 Flask 7
1.3.2 编写 Flask 程序 10
1.3.3 配置开发服务器 . 11
小结 12
思考与练习 12
第 2 章 Flask 视图技术 16
2.1 HTTP 请求 16
2.1.1 HTTP 请求报文 17
2.1.2 request 对象 . 18
2.1.3 URL 传递参数 20
2.1.4 URL 反转 . 23
2.2 HTTP 响应 24
2.2.1 响应报文 24
2.2.2 response 对象 . 25
2.2.3 URL 重定向 26
2.3 Cookie 和 Session 28
2.3.1 Cookie. 28
2.3.2 Session 30
2.4 Blueprint . 33
2.5 Flask 拦截器 . 35
2.6 Flask 上下文 . 37
2.6.1 请求上下文 38
2.6.2 应用上下文 38
小结 39
思考与练习 40
第 3 章 Jinja2 模板引擎 42
3.1 Jinja2 模板引擎概述 42
3.2 模板中的控制语句 . 44
3.2.1 if 控制语句 . 44
3.2.2 for 控制语句 . 45
3.3 Jinja2 的过滤器 . 47
3.3.1 Jinja2 模板内置的过滤器 . 47
3.3.2 自定义过滤器 48
3.4 模板中的宏及使用 . 49
3.4.1 宏的定义 49
3.4.2 宏的使用 50
3.4.3 宏的导入 50
3.5 静态文件的加载 . 51
3.6 模板的继承与包含 . 51
3.6.1 模板的继承 51
3.6.2 模板的包含 53
小结 54
思考与练习 54
第 4 章 Flask 表单. 57
4.1 使用 Flask 处理通用表单 . 57
4.2 使用 Flask-WTF 处理表单 61
4.2.1 Flask-WTF 的安装 . 61
4.2.2 定义表单类 61
4.2.3 表单类在模板中的渲染 . 63
4.3 文件上传 . 65
4.3.1 不使用 Flask-WTF 方式上传文件 65
4.3.2 使用 Flask-WTF 方式上传文件 66
4.4 富文本编辑器 68
4.4.1 安装及配置 68
4.4.2 创建表单类 69
4.4.3 创建模板文件 69
4.4.4 创建视图函数 70
小结 72
思考与练习 72
第 5 章 数据库操作基础 . 74
5.1 数据库基础 . 74
5.1.1 关系型数据库 74
5.1.2 非关系型数据库 . 75
5.2 Python 数据库框架 PyMySQL 76
5.2.1 添加数据 78
5.2.2 查询数据 78
5.2.3 更新数据 80
5.2.4 删除数据 81
5.3 Flask-SQLAlchemy . 81
5.3.1 对象关系映射 81
5.3.2 Flask-SQLAlchemy 的使用 . 82
5.4 登录与注册案例 . 89
5.4.1 案例说明 89
5.4.2 文件夹组织结构 . 89
5.4.3 模板文件 95
小结 97
思考与练习 97
第 6 章 数据库操作进阶 100
6.1 数据库表中的关系 100
6.1.1 一对一关系 . 100
6.1.2 一对多关系 102
6.1.3 多对多关系 . 104
6.2 数据库表的分页查询 107
6.2.1 视图函数中定义分页数据 . 108
6.2.2 定义分页显示格式 . 108
6.2.3 在模板文件中调用宏 . 109
6.3 Flask-Migrate 实现数据库迁移 . 110
6.4 Flask-SQLAcodegen . 111
小结 112
思考与练习 112
第 7 章 前后端分离开发 114
7.1 前后端分离开发概述 114
7.2 RESTful 115
7.3 Flask-RESTful 116
7.3.1 使用 Flask-RESTful 116
7.3.2 输入参数验证 118
7.3.3 输出格式 121
7.4 案例——在线学习笔记 . 122
7.4.1 项目目录组织结构及安装配置 122
7.4.2 数据库设计 124
7.4.3 在线笔记后端设计 . 125
7.4.4 在线笔记前端设计 . 127
小结 131
思考与练习 132
第 8 章 万家果业商城 . 134
8.1 需求分析及系统功能 134
8.2 系统预览 . 135
8.2.1 前台预览 135
8.2.2 后台预览 136
8.3 数据库设计 . 138
8.4 项目目录组织结构及配置 . 143
8.4.1 项目目录结构 143
8.4.2 配置文件 . 143
8.4.3 项目入口文件 144
8.4.4 app 包初始化文件 . 145
8.4.5 前台包文件 145
8.5 会员注册 . 146
8.5.1 创建用户注册页面表单 . 146
8.5.2 显示注册页面 149
8.5.3 验证并保存注册信息 . 151
8.6 会员登录 . 152
8.6.1 创建用户登录页面表单 . 152
8.6.2 显示注册页面 154
8.6.3 生成并获取验证码 . 156
8.6.4 验证并保存会员登录状态 . 157
8.7 首页模块设计 159
8.7.1 首页导航 159
8.7.2 商品展示 161
8.7.3 底部模板 163
8.8 商品详情 . 164
8.8.1 商品详情模板文件 . 164
8.8.2 商品详情路由文件 . 167
8.9 购物车 167
8.9.1 添加商品到购物车 . 167
8.9.2 显示购物车 168
8.9.3 购物车模板 168
8.10 订单添加及显示 . 174
8.10.1 订单添加 174
8.10.2 订单显示 175
8.11 商品搜索 . 176
8.11.1 商品搜索路由 . 176
8.11.2 搜索商品显示 177
8.12 项目配置及运行 . 179
小结 181
思考与练习 181
第 9 章 部署上线 . 182
9.1 部署前准备工作 . 182
9.1.1 选择云服务器 182
9.1.2 安装宝塔面板 184
9.1.3 CentOS 下升级 Python 184
9.2 创建站点及数据库 . 185
9.2.1 创建站点 185
9.2.2 创建数据库 186
9.2.3 启动项目 187
9.3 Nginx+Gunicorn+Flask+Supervisor 的使用 188
9.3.1 使用 Gunicorn 运行程序 188
9.3.2 使用 Nginx 提供反向代理 190
9.3.3 使用 Supervisor 管理进程 191
9.4 uWSGI+Nginx 的使用 193
9.4.1 使用 uWSGI 运行程序 . 193
9.4.2 配置 Nginx 195
小结 196
思考与练习 196
VI