编辑推荐

本书围绕Flask框架,详细地讲解了使用Flask开发网站的各项技术要点。

内容简介

全书共11章。

首先讲解了Flask项目开发中的环境搭建、项目配置、URL与视图、Jinja2模板、数据库、表单、Flask进阶、缓存系统等。

然后拓展了知识面,在项目实战中分别介绍了RESTfulAPI、邮箱验证码、Redis缓存、Celery异步任务、登录授权机制、角色权限管理、富文本编辑器、头像管理、文件上传以及Nginx、Gunicorn部署等技术要点;在WebSocket实战中讲解了Flask中使用WebSocket开发项目的全部过程。

最后讲解了Flask异步编程。

章节目录

版权信息

内容简介

作者简介

序 Foreword

前言 Preface

创作背景

目标读者

内容提要

读者服务

勘误和支持

致谢

chapter 1 第1章 Flask前奏

1.1 Flask简介

1.2 环境搭建

1.2.1 Python环境

注意

1.2.2 Flask版本

1.2.3 开发软件

注意

注意

chapter 2 第2章 项目配置

2.1 Debug模式、Host、Port配置

2.1.1 Debug模式

1. 在PyCharm Professional版中开启Debug模式

2. 在非PyCharm Professional版中开启Debug模式

2.1.2 设置Host和Port

1. PyCharm Professional版修改Host和Port

2. 非PyCharm Professional版修改Host和Port

2.2 在app.config中添加配置

2.2.1 使用app.config配置

2.2.2 使用Python配置文件

chapter 3 第3章 URL与视图

注意

3.1 定义URL

3.1.1 定义无参数的URL

注意

3.1.2 定义有参数的URL

3.2 HTTP请求方法

3.3 页面重定向

3.4 构造URL

chapter 4 第4章 Jinja2模板

4.1 模板的基本使用

4.1.1 渲染模板

注意

4.1.2 渲染变量

4.2 过滤器和测试器

4.2.1 自定义过滤器

4.2.2 Jinja2内置过滤器

4.2.3 测试器

4.3 控制语句

4.3.1 if判断语句

注意

4.3.2 for循环语句

4.4 模板结构

4.4.1 宏和import语句

4.4.2 模板继承

4.4.3 引入模板

4.5 模板环境

4.5.1 模板上下文

1. 自定义变量

2. Jinja2内置全局上下文变量

3. 上下文处理器

4.5.2 全局函数

1. 内置全局函数

2. 自定义全局函数

4.5.3 Flask模板环境

1. 设置autoescape

2. 添加过滤器

3. 添加全局对象

4. 添加测试器

4.6 其他

4.6.1 转义

4.6.2 加载静态文件

4.6.3 闪现消息

chapter 5 第5章 数据库

5.1 准备工作

5.1.1 MySQL软件

5.1.2 Python操作MySQL驱动

5.1.3 Flask-SQLAlchemy

5.2 Flask-SQLAlchemy的基本使用

5.2.1 连接MySQL

5.2.2 ORM模型

5.2.3 CRUD操作

1. Create操作

2. Read操作

3. update操作

4. delete操作

5.3 表关系

5.3.1 外键

5.3.2 一对多关系

1. 建立关系

2. 建立双向关系

3. 简化关系定义

5.3.3 一对一关系

5.3.4 多对多关系

5.3.5 级联操作

1. save-update

2. delete

3. delete-orphan

4. merge

5. expunge

6. all

7. 默认值

5.4 ORM模型迁移

5.4.1 创建迁移对象

5.4.2 初始化迁移环境

5.4.3 生成迁移脚本

5.4.4 执行迁移脚本

chapter 6 第6章 表单

6.1 表单验证

6.1.1 表单类编写

注意

6.1.2 视图函数中使用表单

注意

6.1.3 自定义验证字段

6.2 渲染表单模板

注意

6.3 CSRF攻击

1. 防御CSRF攻击原理

2. Flask-WTF防御CSRF攻击

chapter 7 第7章 Flask进阶

7.1 类视图

7.1.1 基本使用

7.1.2 方法限制

7.1.3 基于方法的类视图

7.1.4 添加装饰器

7.2 蓝图

7.2.1 基本使用

7.2.2 寻找模板

7.2.3 寻找静态文件

7.3 cookie和session

7.3.1 关于cookie和session的介绍

1. cookie

2. session

7.3.2 Flask中使用cookie和session

1. Flask中操作cookie

2. Flask中操作session

7.4 request对象

7.5 Flask信号机制

7.5.1 自定义信号

7.5.2 Flask内置信号

1. flask. template_rendered

2. flask. request_started

3. flask. request_finished

4. flask. got_request_exception

5. flask. request_tearing_down

7.6 常用钩子函数

1. before_first_request

2. before_request

3. teardown_appcontext

4. context_processor

5. errorhandler

7.7 上下文

7.7.1 线程隔离对象

7.7.2 LocalStack类

7.7.3 LocalProxy类

chapter 8 第8章 缓存系统

8.1 Memcached

8.1.1 安装Memcached

1. Windows系统

2. Linux系统(Ubuntu)

8.1.2 telnet操作Memcached

1. set命令

2. add命令

3. get命令

4. delete命令

5. flush_all命令

6. stats命令

8.1.3 Python操作Memcached

1. 建立连接

2. 设置数据

3. 获取数据

4. 删除数据

5. 自增长

6. 自减少

8.1.4 Memcached的安全性

8.2 Redis

8.2.1 Redis使用场景

8.2.2 Redis和Memcached比较

8.2.3 Redis在Ubuntu中的安装与使用

1. 在Windows系统上安装和使用Redis

2. 在Linux系统上安装Redis

8.2.4 Redis操作命令

1. 添加数据

2. 删除数据

3. 设置过期时间

4. 查看过期时间

5. 查看所有key

6. 列表操作

7. 集合操作

8. 哈希(hash)操作

9. 事务操作

10. 发布/订阅操作

8.2.5 同步数据到硬盘

1. RDB策略

2. AOF策略

8.2.6 设置密码

8.2.7 Python操作Redis

1. 连接Redis

2. 字符串操作

3. 列表操作

4. 集合操作

5. 哈希操作

6. 事务操作

chapter 9 第9章 项目实战

9.1 创建项目

注意

注意

1. pymysql

2. Flask-SQLAlchemy

3. cryptography

4. Flask-Migrate

9.1.1 config.py文件

9.1.2 exts.py文件

9.1.3 blueprints模块

9.1.4 models模块

9.2 创建用户相关模型

9.2.1 创建权限和角色模型

9.2.2 创建权限和角色

9.2.3 创建用户模型

9.2.4 创建测试用户

9.2.5 创建管理员

9.3 注册

9.3.1 渲染注册模板

9.3.2 使用Flask-Mail发送邮箱验证码

1. 安装Flask-Mail

2. 配置邮箱参数

3. 发送邮件

9.3.3 使用Flask-Caching和Redis缓存验证码

9.3.4 使用Celery发送邮件

9.3.5 RESTful API

9.3.6 CSRF保护

9.3.7 使用AJAX获取邮箱验证码

9.3.8 实现注册功能

9.4 登录

9.5 发布帖子

9.5.1 添加帖子相关模型

9.5.2 初始化板块数据

9.5.3 渲染发布帖子模板

9.5.4 使用wangEditor富文本编辑器

注意

1. 引入wangEditor. js文件

2. 添加生成编辑器的占位标签

3. 初始化编辑器

4. 设置图片上传URL

9.5.5 未登录限制

9.5.6 服务端实现发帖功能

9.5.7 使用AJAX发布帖子

9.6 首页

9.6.1 生成帖子测试数据

注意

9.6.2 使用Flask-Paginate实现分页

9.6.3 过滤帖子

9.7 帖子详情

9.7.1 动态加载帖子详情数据

9.7.2 发布评论

9.8 个人中心

9.8.1 使用Flask-Avatars生成随机头像

1. Gravatar

2. Robohash

3. 社交网站头像

4. 默认头像

5. Identicon哈希头像

9.8.2 修改导航条上的登录状态

9.8.3 根据用户显示个人中心

9.8.4 修改用户信息

9.9 CMS管理系统

9.9.1 CMS入口

9.9.2 权限管理

9.9.3 员工管理页面

9.9.4 添加员工

9.9.5 编辑员工

9.9.6 管理前台用户

9.9.7 帖子管理

9.9.8 评论管理

9.9.9 板块管理

9.10 错误处理

9.11 日志

9.11.1 loggers模块

9.11.2 handlers模块

注意

9.11.3 filters模块

9.11.4 formatters模块

9.12 部署

9.12.1 导出依赖包

9.12.2 使用Git上传代码

1. 初始化仓库

2. 添加远程仓库地址

3. 添加所有代码到缓存区

4. 将代码提交到本地仓库

5. 将本地仓库代码推送到Github远程仓库

注意

9.12.3 生产环境的配置

9.12.4 安装常用软件

1. 安装OpenSSH

2. 安装Vim

3. 安装MySQL

4. 安装Redis

5. 安装Python3

6. 安装Git

9.12.5 配置网站

1. 创建新用户

2. 使用Git拉取代码

3. 安装Python依赖包

4. 创建数据库

5. 同步ORM模型到数据库中

6. 创建初始数据

7. 运行Celery

9.12.6 使用Gunicorn部署网站

9.12.7 使用Nginx部署网站

9.12.8 压力测试

chapter 10 第10章 WebSocket实战

10.1 安装相应的包

10.2 创建SocketIO对象

10.3 实现登录

10.4 连接和取消连接

10.5 获取在线用户

10.6 实现单聊

10.7 实现群聊

10.8 部署项目

chapter 11 第11章 Flask异步编程

11.1 asyncio标准库

注意

1. 事件循环

2. 协程

3. Task(任务)对象

4. Future对象

11.2 aiohttp库

11.3 异步版Flask安装与异步编程性能

11.3.1 安装异步版Flask

11.3.2 Flask异步编程性能

11.3.3 实战——异步发送HTTP请求

11.3.4 使用异步SQLAlchemy

注意

注意

11.3.5 Jinja2开启异步支持

FlaskWeb全栈开发实战是2022年由清华大学出版社出版,作者黄勇。

得书感谢您对《FlaskWeb全栈开发实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
产品经理知识栈 电子书

系统介绍产品经理应具备的金融、人工智能、策略、产品分析知识,帮助产品经理提升综合能力。
数据增长模型:数智时代的全栈产品运营思维、算法与技术 电子书

本书在数字化背景下,以数据产品从业者的数据技术、数据技能、数据思维、数据方法、数据模型、产品用户/客户增长实战经验为基调,体系化撰写了数字化和数据产品的数据经验知识和案例。
AppInventor开发实战 电子书

AppInventor是MIT开发的流行的可视化编程工具,编程爱好者可以在短时间学会创建炫目的安卓手机应用。
鸿蒙应用开发实战 电子书

本书为华为鸿蒙系统HarmonyOS开发图书,以JavaScript为开发语言,提供完整源代码。
Vue企业开发实战 电子书

《大型电商网站大麦网开发:vue、ES6与Webpack技能结合》
Python机器学习开发实战 电子书

Python机器学习入门,以实战为重点,配有大量代码和案例,简单、快速、易学。
Angular开发入门与实战 电子书

深入浅出学Angular,实战驱动,快速提升开发实力。