FlaskWeb全栈开发实战

FlaskWeb全栈开发实战

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

本书围绕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全栈开发实战》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Python全栈数据工程师养成攻略 电子书
  1.上海交通大学机器学习、人工智能专家亲笔力作。   2.超过900分钟的全程视频讲解,扫一扫二维码,跟着视频轻松学。   3.网易云课堂同名人气课程,全部五星好评。
Web全栈工程师的自我修养 电子书
本书内容全面,客观务实,适合互联网行业新人、程序员,以及期待技术转型的从业者阅读参考。
ReactNative移动开发实战 电子书
React native入门书籍,打造高品质移动用户体验。
Vue企业开发实战 电子书
《大型电商网站大麦网开发:vue、ES6与Webpack技能结合》
Vulkan开发实战详解 电子书
本书共分为19章,介绍了Vulkan的诞生、特点、开发环境的搭建以及运行机制、渲染管线和调试技术,着色器编程语言—GLSL、投影及各种变换、光照、纹理映射、3D模型的加载、混合与雾、两种测试及片元丢弃、顶点着色器的妙用、片元着色器的妙用、真实光学环境的模拟、阴影及高级光照、几种高级着色器特效、骨骼动画、Vulkan的性能优化等,最后以一个休闲游戏—方块历险记的案例来展示Vulkan的功能与技术。本