> For the complete documentation index, see [llms.txt](https://l1nwatch.gitbook.io/flask-web-python-web/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://l1nwatch.gitbook.io/flask-web-python-web/master.md).

# Flask Web 开发：基于 Python 的 Web 应用开发实战

## 说明

* 本仓库为《Flask Web 开发：基于 Python 的 Web 应用开发实战》形成 Gitbook 的代码
* 整理成 [GitBook](https://l1nwatch.gitbooks.io/flask-web-python-web/content/) 形式了

## 本书结构

本书分为三部分

* 第一部分 Flask 简介 简要介绍如何使用 Flask 框架及一些扩展开发 Web 程序
  * 第 1 章 说明如何安装和设置 Flask 框架
  * 第 2 章 通过一个简单的程序介绍如何使用 Flask
  * 第 3 章 介绍如何在 Flask 程序中使用模板
  * 第 4 章 介绍 Web 表单
  * 第 5 章 介绍数据库
  * 第 6 章 介绍如何实现电子邮件支持
  * 第 7 章 提供一个可供中大型程序使用的程序结构
* 第二部分 实例: 社交博客程序 开发 Flasky,这是作者为本书开发的开源博客和社交网络程序
  * 第 8 章 实现用户认证系统
  * 第 9 章 实现用户角色和权限
  * 第 10 章 实现用户资料页
  * 第 11 章 开发博客界面
  * 第 12 章 实现关注功能
  * 第 13 章 实现博客文章的用户评论功能
  * 第 14 章 实现应用编程接口(Application Programming Interface, API)
* 第三部分 成功在望 介绍与开发程序没有直接关系,但在程序发布之前要考虑的事项
  * 第 15 章 详细说明各种单元测试策略
  * 第 16 章 简要介绍性能分析技术
  * 第 17 章 说明 Flask 程序的部署方式, 包括传统方式和云方式
  * 第 18 章 列出其他资源

### 如何使用示例代码

参考: <https://github.com/miguelgrinberg/flasky>

第 1 章会要求你签出程序的初始发布版本, 然后在适当的时候指示你需要向前推进查看提交历史。切换提交历史的 Git 命令是 `git checkout`。

```
git checkout 1a
```

1a 代表一个标签(tag), 是项目中某次提交历史的名字。

一般情况下, 你无需修改程序的源文件, 但如果修改了, Git 会阻止你签出其他历史版本, 因为这会导致本地修改历史的丢失。 签出其他历史版本之前, 要把文件还原到原始状态。 最简单的方法是使用 `git reset` 命令:

```
git reset --hard
```

这个命令会损坏本地修改

可能经常需要从 GitHub 上下载修正和改进后的源码用于更新本地仓库, 完成这个操作的命令:

```
git fetch --all
git fetch --tags
git reset --hard origin/master
```

`git fetch` 命令用于利用 GitHub 上的远程仓库更新本地仓库的提交历史和标签, 但不会改动真正的源文件, 随后执行的 `git reset` 命令才是用于更新文件的操作

另一个有用的操作是查看程序两个版本之间的区别,以便了解改动详情。在命令行中,可以使用 `git diff` 命令进行查看。

```
git diff 2a 2b
```

### 使用代码示例
