Flask Web开发:基于Python的Web应用开发实战(第2版)
上QQ阅读APP看书,第一时间看更新

本书使用的示例代码可从GitHub上下载1https://github.com/miguelgrinberg/flasky

1也可前往本书的图灵社区页面(http://www.ituring.com.cn/book/2463)下载。——编者注

这个仓库的提交历史是精心设计的,与本书介绍的功能顺序一致。使用这份代码时,我建议你从最早的提交开始,跟随本书内容的进度,向前推移提交列表。另外,你还可以从GitHub上下载每次提交代码后得到的ZIP或TAR文件。

如果你决定使用Git操作源码,那么首先要安装Git客户端(可以从http://git-scm.com/下载)。使用Git下载本书示例代码的命令如下:

$ git clone https://github.com/miguelgrinberg/flasky.git

git clone命令从GitHub上下载源码,安装到当前目录下的flasky文件夹中。这个文件夹中不仅有源码,还有一个包含应用完整修改历史的Git仓库。

第1章会要求你检出应用的初始发布版本,然后在适当的时候再指示你向前推进查看提交历史。切换提交历史的Git命令是git checkout。下面举个例子:

$ git checkout 1a

上述命令中的1a代表一个标签(tag),是项目中某次提交历史的名称。这个仓库的标签根据本书的章节命名,因此本例中的1a表示第1章使用的初始版本。大多数章都不止使用一个标签,例如5a5b等分别对应第5章中用到的不同版本。

执行上述git checkout命令后,Git会显示一个提醒消息,指出你在“孤立的HEAD”状态。这表明你不在能接受新提交的代码分支上,而是在查看项目提交历史中的某次提交。不要被这个消息吓着,但是要注意,一旦你在这个状态下修改了文件,便不能再执行git checkout命令,因为Git不知如何处理你所做的改动。因此,为了能继续跟着本书操作,你要把改动的文件还原到最初的状态。最简单的方法是使用git reset命令:

$ git reset --hard

这个命令会撤销本地修改,所以在执行之前,你要保存所有不想丢失的改动。

除了检出应用源码的不同版本,你可能还需要进行一些设置。例如,有时需要安装额外的Python包,或者升级数据库。需要执行这些操作时,我会提醒你。

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

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

git fetch命令根据GitHub上的远程仓库更新本地仓库的提交历史和标签,但不会真正改动源文件,随后执行的git reset命令才是用于更新文件的操作。再次提醒,执行git reset命令后,本地修改将会丢失。

另一个有用的操作是查看应用两个版本之间的差异,以便了解改动详情。在命令行中,可以使用git diff命令进行查看。例如,执行下述命令可以查看2a2b两个修订版本之间的差异:

$ git diff 2a 2b

这个命令以补丁(patch)的形式显示差异,如果你以前没有用过补丁文件,可能会觉得这种查看改动的方式不直观。你可能发现,GitHub网站中显示的图形化对比更容易理解。例如,要在GitHub中查看2a2b两个历史版本的差异,可以访问https://github.com/miguelgrinberg/flasky/compare/2a...2b