Flask 2+Vue.js 3实战派——Python Web开发与运维
  • 推荐0
  • 收藏0
  • 浏览190

Flask 2+Vue.js 3实战派——Python Web开发与运维

  • 书  号:9787121478611
  • 出版日期:2024-06-01
  • 页  数:
  • 开  本:
  • 出版状态:上市销售
  • 维护人:博文小编
《Flask 2+Vue.js 3实战派——Python Web开发与运维》介绍了Flask编程从开发到运维过程中涉及的方法、技巧和实战经验,共分为5篇。
“第1篇 基础”介绍Flask开发的基础知识。
“第2篇 项目入门实战”通过开发一个图书管理系统后台来融合前面章节的知识点。
“第3篇 项目进阶实战”通过开发一个商城系统后台来融合钩子函数、蓝图、缓存、分布式任务队列、邮件等Flask进阶知识点。
“第4篇 前后端分离项目实战”通过Flask-RESTful框架来设计和实现RESTFul接口,使用“前后端分离”的方式开发商城系统前台,涉及Vue.js 3、Axios、Vue Router 4、Pinia、Flask-RESTful等技术。
“第5篇 部署及运维”涉及Flask应用的传统部署、Flask应用的Docker部署。
《Flask 2+Vue.js 3实战派——Python Web开发与运维》通过完整的商城系统实例,融合了Flask开发中涉及的知识点;通过大量实例手把手带领读者学习完整的“需求分析、开发、部署上线”过程,践行“软件开发运维一体化”的理念。
《Flask 2+Vue.js 3实战派——Python Web开发与运维》适合所有对Flask感兴趣的读者阅读学习。
杨永刚
现就职于天翼云科技有限公司新疆分公司,微软最有价值专家(MSMVP)/电信集团高级技术专家/高级工程师/软件工程硕士。
专注于大模型、云计算、容器、大数据技术,擅长C#、Python、Java编程。先后主持多个集团级、省级大型项目,并荣获电信集团科技进步二等奖。
曾负责微软.NET俱乐部的区域发起与推广,具有丰富的线上/线下培训经验。曾因在创新方面所作的努力,在北京大学百周年纪念讲堂接受比尔•盖茨先生的颁奖。
出版畅销图书《Django+Vue.js实战派——Python Web开发与运维》,受到众多读者的好评。
Python作为人工智能、机器学习、云计算、大数据、物联网等技术背后的主要语言,在这几年发展迅猛。在TIOBE编程语言指数2023年11月的编程语言排行榜中,Python继续保持第一名。Python语言简单易学,用户借助其众多的优秀模块可以从事很多领域的开发工作。同样一项工作,使用C语言可能需要1000行代码,使用Java语言可能需要100行代码,使用Python可能只需要10行代码。
Flask是一个基于Python语言编写的、具有架站能力的开源Web框架。用户使用Flask,只需要很少的代码,就可以轻松地完成一个网站所需的大部分内容,并进一步开发出全功能的Web服务。
本书特色
本书具有如下特点。
1. 紧跟潮流,使用最新版本
本书涉及的相关软件都使用了最新版本,如Python 3.9.13、Flask 2.3.2、Flask-RESTful 0.3.10、Flask-JWT-Extended 4.5.3、Flask-CKEditor 0.5.0、Vue.js 3.3.4、Pinia 2.1.6、MySQL 5.7.30、uwsgi 2.0.22、Gunicorn 21.2.0、Supervisor 4.2.2、Nginx 1.21.1、Redis 6.2.5、Docker 20.10.5、Harbor 1.10.0等。
2. 零基础入门,轻松易学
本书根据每个项目实例的特点,“从原理到实践”手把手地教学,通过图解、比喻、类比的方式深入浅出地进行讲解。
3. 实战性强,便于掌握
本书介绍了大量的实例,能让读者“动起来”,在实践中体会功能,而不只是理解概念。
在讲解每个知识模块时,我们都在思考:在这个知识模块中,哪些是读者必须实现的“标准动作”(实例);哪些“标准动作”是可以先完成的,以帮助读者快速感知;哪些“标准动作”是有一定难度的,需要放到后面完成。读者在跟随书中实例实践之后,再去理解那些抽象的概念和原理就水到渠成了。
本书的目标之一是让读者在动手中学习,而不是“看书时好像全明白了,一动手却发现什么都不会”。
全书完成了一个完整的实例——商城系统。通过该实例将后台开发、前台开发、接口开发、部署运维等知识点融合在一起。
4. 提供代码,便于复现
本书附带实例代码。这些代码都是从实际项目演变而来的。利用代码,读者可以快速复现书中的效果,还可以举一反三将其转变为自己的项目。读者只要具备了这种举一反三的能力,就可以实现更复杂的功能,应对更复杂的应用场景。
本书适合的读者
 初学编程的自学者
 熟悉Python并计划学习Web开发的人员
 Flask初学者
 培训机构的教师和学员  有其他开发语言经验的开发人员
 学习过其他开发框架的开发人员
 高校的老师和学生
致谢
感谢我的家人,如果没有你们的悉心照顾和鼓励,我不可能完成本书。
感谢我的妻子,在我写作期间,承担了全部家务。感谢我的两个宝贝——雯雯和谦谦,你们是我持续写作的动力。
感谢电子工业出版社的编辑吴宏伟老师,在这一年多的时间里始终支持我的写作,吴老师对本书的内容框架、目录结构做了非常多的指导和细化。吴老师的鼓励和帮助引导我顺利地完成全部书稿。感谢吴老师的信任,期待与你再次合作。
尽管在写作过程中力求严谨,但是限于本书篇幅、本人的技术水平及本书的定位,书中难免有纰漏之处,希望读者批评与指正。
最后,祝读者在学习Flask的道路上一帆风顺!

杨永刚
2023年11月于乌鲁木齐

目录

第1篇 基础
第1章 走进Flask 2
1.1 了解Flask 2
1.1.1 Flask的特点 2
1.1.2 MVC和MTV模式 3
1.1.3 Flask的核心库 4
1.1.4 Flask的库 5
1.2 安装Flask 6
1.2.1 使用国内镜像源加速安装第三方包 6
1.2.2 安装Python虚拟环境 6
1.2.3 通过pip命令安装Flask 7
1.3 利用PyCharm编辑器进行Flask开发 8
1.4 【实战】开发第一个Flask应用 9
1.4.1 使用PyCharm开发一个Flask程序 9
1.4.2 初步认识Flask程序 10
1.5 Flask项目的调试模式 11
1.6 Flask配置的保存/加载 12
1.6.1 使用app.config属性保存配置参数 13
1.6.2 加载配置文件的两种方法 13
1.7 采用Flask-Script库作为项目的启动方案 14
1.7.1 安装Flask-Script 14
1.7.2 用Flask-Script替代默认的Flask应用对象 14
1.7.3 Flask-Script常用的功能 15
1.8 Flask在后端开发中的作用 17
第2章 网站的入口——Flask的路由和视图 18
2.1 使用Flask中的路由 18
2.1.1 使用装饰器@app.route配置路由 18
2.1.2 使用app.add_url_rule()方法配置路由 19
2.1.3 查看路由规则 20
2.1.4 解析动态路由 21
2.1.5 使用url_for()函数反向解析路由 21
2.2 认识视图函数 22
2.2.1 什么是视图函数 23
2.2.2 视图函数的底层原理 23
2.2.3 视图处理函数 30
2.3 认识视图类 34
2.3.1 什么是视图类 34
2.3.2 利用视图类进行功能设计 35
第3章 开发页面——基于Jinja 2模板 37
3.1 Flask模板引擎——Jinja 2 37
3.1.1 模板变量 37
3.1.2 模板标签 39
3.1.3 模板过滤器 42
3.2 模板的高级用法 44
3.2.1 模板转义——保证代码的安全 44
3.2.2 【实战】自定义过滤器 45
3.2.3 【实战】自定义全局函数 46
3.2.4 全局模板变量和局部模板变量 47
3.3 模板继承 48
3.3.1 【实战】设计母版页 49
3.3.2 【实战】设计内容页 49
3.3.3 【实战】设计组件 50
3.3.4 宏 51
3.4 配置模板文件 53
3.4.1 理解HTML、CSS和JavaScript 53
3.4.2 配置静态文件 53
3.5 闪现消息 55
第4章 使用数据库——基于Flask模型 58
4.1 认识Flask-SQLAlchemy模块 58
4.1.1 Flask-SQLAlchemy模块的参数配置 59
4.1.2 链接常见数据库的写法 60
4.2 认识Flask模型 61
4.2.1 定义模型 61
4.2.2 字段的类型 62
4.2.3 字段的参数 63
4.2.4 _ _repr_ _()方法 65
4.3 使用Flask模型操作数据库 65
4.3.1 了解ORM 65
4.3.2 创建数据库表 66
4.3.3 新增数据 68
4.3.4 查询数据 69
4.3.5 修改数据 77
4.3.6 删除数据 77
4.3.7 执行原生SQL语句 78
4.3.8 事务处理 79
4.4 认识和操作Flask模型关系 81
4.4.1 “一对多”关系 81
4.4.2 “一对一”关系 84
4.4.3 “多对多”关系 86
4.5 数据模型的迁移 89
4.5.1 实例化Migrate 类 89
4.5.2 初始化 90
4.5.3 生成迁移脚本 90
4.5.4 执行迁移 91
4.5.5 解决执行迁移过程中的报错 91
4.5.6 回退到某次修改 91
4.5.7 从数据库表到模型 92
第5章 展现界面——基于Flask表单 94
5.1 HTML表单 94
5.1.1 【实战】用户登录 95
5.1.2 【实战】使用传统表单上传文件 96
5.2 Flask表单 97
5.2.1 认识WTForms和Flask-WTF 98
5.2.2 表单验证 105
5.2.3 【实战】使用Form-WTF表单上传文件 108
5.2.4 【实战】使用Flask-Uploads库上传文件 110
5.3 使用AJAX提交表单 114
5.3.1 基于jQuery技术实现AJAX 114
5.3.2 在AJAX请求中设置令牌(csrf_token) 114
5.3.3 【实战】使用AJAX实现用户登录 115
第6章 用户认证和权限管理——基于Flask-Login库 118
6.1 初识Flask-Login库 118
6.1.1 安装Flask-Login库 118
6.1.2 Flask-Login库的使用流程 118
6.2 【实战】利用用户模型实现用户身份认证及状态保持 120
6.2.1 实例化LoginManager对象 121
6.2.2 定义用户模型 121
6.2.3 注册用户 122
6.2.4 登录用户 122
6.2.5 退出用户 123
6.2.6 显示用户首页 123
6.3 【实战】开发一个Flask用户权限管理模块 124
6.3.1 建立角色模型、用户模型和权限模型 124
6.3.2 建立表单 126
6.3.3 显示角色 127
6.3.4 修改角色 128
6.3.5 登录装饰器 130
6.3.6 权限装饰器 131
第7章 Flask后台管理——基于Flask-Admin库 133
7.1 使用Flask-Admin库实现后台管理系统 133
7.1.1 进入后台管理系统 134
7.1.2 在后台管理系统中设置导航链接并美化页面 134
7.2 Flask-Admin库的进阶用法 136
7.2.1 在Admin后台显示自定义的模型 136
7.2.2 汉化页面 137
7.2.3 显示中文字段 138
7.2.4 定制页面功能 138
7.2.5 上传图片 140
7.2.6 在列表页面中显示图像 140
7.2.7 自定义超链接 141
7.2.8 批量处理 143
7.2.9 显示“一对多”关系字段 144
7.2.10 与Flask-Login库结合使用,实现用户认证 145
第2篇 项目入门实战
第8章 【实战】使用Flask + Bootstrap框架开发图书管理系统后台 149
8.1 设计分析 149
8.1.1 需求分析 149
8.1.2 架构设计 150
8.1.3 最终效果 150
8.2 开发图书管理系统后台 151
8.2.1 规划工程目录 151
8.2.2 搭建母版页 152
8.2.3 开发“出版社管理”模块 152
8.2.4 开发“作者管理”模块 160
8.2.5 开发“图书管理”模块 163
8.2.6 开发首页 171
第3篇 项目进阶实战
第9章 Flask进阶 175
9.1 请求上下文和应用上下文 175
9.1.1 请求上下文(request context) 175
9.1.2 应用上下文(application context) 176
9.2 钩子函数 178
9.3 认识蓝图 180
9.4 日志管理 181
9.5 信号 182
9.6 测试 184
9.6.1 单元自动化测试 185
9.6.2 接口自动化测试 185
9.6.3 用户界面自动化测试 185
9.6.4 了解单元测试框架unittest 186
9.6.5 【实战】使用unittest进行单元测试 186
9.6.6 【实战】使用Flask + unittest进行接口自动化测试 188
9.6.7 【实战】使用Pytest进行单元测试 190
9.6.8 【实战】使用Flask + Pytest进行接口自动化测试 192
9.7 使用Flask-Cache库实现缓存 194
9.7.1 安装Flask-Cache库 194
9.7.2 了解不同的缓存 194
9.7.3 Flask-Cache库的常见用法 194
9.7.4 用Redis作为缓存的后端存储 198
9.8 分布式任务队列Celery 201
9.8.1 Celery的组件及其工作原理 201
9.8.2 安装Celery 202
9.8.3 【实战】第一个Celery程序 202
9.9 使用Flask-Mail库实现邮件发送 203
9.9.1 安装Flask-Mail库 203
9.9.2 配置变量 204
9.9.3 获取授权码 204
9.9.4 邮件发送的示例 205
9.10 认识工厂函数 206
9.10.1 为什么要使用工厂函数 206
9.10.2 创建一个工厂函数 206
第10章 【实战】使用Flask + Bootstrap框架开发商城系统后台 209
10.1 设计分析 209
10.1.1 需求分析 209
10.1.2 架构设计 210
10.1.3 最终效果 210
10.2 开发商城系统后台 210
10.2.1 规划工程目录 211
10.2.2 开发商品分类模块 214
10.2.3 开发商品信息模块 222
10.2.4 使用信号和Flask-Mail发送注册成功邮件 229
10.2.5 使用Flask-Cache缓存商品数据 231
10.2.6 开发首页 233
10.2.7 使用Celery定时将首页生成静态页 236
第4篇 前后端分离项目实战
第11章 接口的设计与实现 242
11.1 前后端分离 242
11.1.1 了解前后端分离 242
11.1.2 为什么要前后端分离 243
11.1.3 如何实施前后端分离 244
11.1.4 前后端分离的技术栈 245
11.2 设计符合标准的RESTful接口 245
11.3 接口开发——基于
Flask-RESTful库 247
11.3.1 安装Flask-RESTful库 247
11.3.2 快速编写一个Flask API 247
11.3.3 认识请求 249
11.3.4 认识响应 253
11.3.5 使用蓝图 262
11.4 接口安全机制 262
11.4.1 基于HTTPTokenAuth实现Token认证 262
11.4.2 基于Flask-JWT-Extended实现JWT认证 265
11.4.3 基于后端技术的跨域解决方案 269
11.5 【实战】利用Flasgger生成专业的Swagger文档 271
11.5.1 安装及配置Flasgger 271
11.5.2 生成Swagger文档 271
11.6 使用Flask-RESTX改进Flask-RESTful 273
11.7 【实战】实现图书管理系统的接口 275
11.7.1 规划工程目录 275
11.7.2 出版社相关接口 275
11.8 【实战】使用Postman测试接口 279
11.8.1 发起GET请求 279
11.8.2 发起POST请求 280
11.8.3 发起PUT请求 280
11.8.4 发起DELETE请求 281
第12章 快速入门前端开发——Vue.js 3 + Vite + Pinia 282
12.1 前端开发利器——Vue.js框架 282
12.1.1 认识Vue.js 282
12.1.2 Vue.js 3的新特性 282
12.2 搭建开发环境 283
12.2.1 安装Node.js 283
12.2.2 使用Vue CLI脚手架创建Vue.js 3项目 284
12.2.3 使用Vite创建Vue.js 3项目 287
12.2.4 使用Visual Studio Code编辑器进行前端代码开发 290
12.3 Vue.js 3的组合式API 292
12.3.1 选项式API和组合式API的对比 292
12.3.2 使用

读者评论