第 1 章 安装

第 1 章 安装

在大多数标准中,Flask(http://flask.pocoo.org/)都算是小型框架,小到可以称为“微框架”。Flask非常小,因此你一旦能够熟练使用它,很可能就能读懂它所有的源码。

但是,小并不意味着它比其他框架的功能少。Flask自开发伊始就被设计为可扩展的框架,它具有一个包含基本服务的强健核心,其他功能则可通过扩展实现。你可以自己挑选所需的扩展包,组成一个没有附加功能的精益组合,从而完全精确满足自身需求。

Flask有两个主要依赖:路由、调试和Web服务器网关接口(Web Server Gateway Interface,WSGI)子系统由Werkzeug(http://werkzeug.pocoo.org/)提供;模板系统由Jinja2(http://jinja.pocoo.org/)提供。Werkzeug和Jinjia2都是由Flask的核心开发者开发而成。

Flask并不原生支持数据库访问、Web表单验证和用户认证等高级功能。这些功能以及其他大多数Web程序中需要的核心服务都以扩展的形式实现,然后再与核心包集成。开发者可以任意挑选符合项目需求的扩展,甚至可以自行开发。这和大型框架的做法相反,大型框架往往已经替你做出了大多数决定,难以(有时甚至不允许)使用替代方案。

本章介绍如何安装Flask。在这一学习过程中,你只需要一台安装了Python的电脑。

鸟本书中的代码示例已经通过Python 2.7和Python 3.3的测试,所以我们强烈建议大家选用这两个版本。

1.1 使用虚拟环境

安装Flask最便捷的方式是使用虚拟环境。虚拟环境是Python解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局Python解释器。

虚拟环境非常有用,可以在系统的Python解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建(更多)虚拟环境的源。使用虚拟环境还有个好处,那就是不需要管理员权限。

虚拟环境使用第三方实用工具virtualenv创建。输入以下命令可以检查系统是否安装了virtualenv

$ virtualenv --version

如果结果显示错误,你就需要安装这个工具。

鸟Python 3.3通过venv模块原生支持虚拟环境,命令为pyvenvpyvenv可以替代virtualenv。不过要注意,在Python 3.3中使用pyvenv命令创建的虚拟环境不包含pip,你需要进行手动安装。Python 3.4改进了这一缺陷,pyvenv完全可以代替virtualenv

大多数Linux发行版都提供了virtualenv包。例如,Ubuntu用户可以使用下述命令安装它:

$ sudo apt-get install python-virtualenv

如果你的电脑是Mac OS X系统,就可以使用easy_install安装virtualenv

$ sudo easy_install virtualenv

如果你使用微软的Windows系统或其他没有官方virtualenv包的操作系统,那么安装过程要稍微复杂一点。

在浏览器中输入网址https://bitbucket.org/pypa/setuptools,回车后会进入setuptools安装程序的主页。在这个页面中找到下载安装脚本的链接,脚本名为ez_setup.py。把这个文件保存到电脑的一个临时文件夹中,然后在这个文件夹中执行以下命令:

$ python ez_setup.py
$ easy_install virtualenv

鸟上述命令必须以具有管理员权限的用户身份执行。在微软Windows系统中,请使用“以管理员身份运行”选项打开命令行窗口;在基于Unix的系统中,要在上面两个命令前加上sudo,或者以根用户身份执行。一旦安装完毕,virtualenv实用工具就可以从常规账户中调用。

现在你要新建一个文件夹,用来保存示例代码(示例代码可从GitHub库中获取)。我们在前言的“如何使用示例代码”一节中说过,获取示例代码最简便的方式是使用Git客户端直接从GitHub下载。下述命令从GitHub下载示例代码,并把程序文件夹切换到“1a”版本,即程序的初始版本:

$ git clone https://github.com/miguelgrinberg/flasky.git
$ cd flasky
$ git checkout 1a

下一步是使用virtualenv命令在flasky文件夹中创建Python虚拟环境。这个命令只有一个必需的参数,即虚拟环境的名字。创建虚拟环境后,当前文件夹中会出现一个子文件夹,名字就是上述命令中指定的参数,与虚拟环境相关的文件都保存在这个子文件夹中。按照惯例,一般虚拟环境会被命名为venv

$ virtualenv venv
New python executable in venv/bin/python2.7
Also creating executable in venv/bin/python
Installing setuptools............done.
Installing pip...............done.

现在,flasky文件夹中就有了一个名为venv的子文件夹,它保存一个全新的虚拟环境,其中有一个私有的Python解释器。在使用这个虚拟环境之前,你需要先将其“激活”。如果你使用bash命令行(Linux和Mac OS X用户),可以通过下面的命令激活这个虚拟环境:

$ source venv/bin/activate

如果使用微软Windows系统,激活命令是:

$ venv\Scripts\activate

虚拟环境被激活后,其中Python解释器的路径就被添加进PATH中,但这种改变不是永久性的,它只会影响当前的命令行会话。为了提醒你已经激活了虚拟环境,激活虚拟环境的命令会修改命令行提示符,加入环境名:

(venv) $

当虚拟环境中的工作完成后,如果你想回到全局Python解释器中,可以在命令行提示符下输入deactivate

1.2 使用pip安装Python包

大多数Python包都使用pip实用工具安装,使用virtualenv创建虚拟环境时会自动安装pip。激活虚拟环境后,pip所在的路径会被添加进PATH

鸟如果你在Python 3.3中使用pyvenv创建虚拟环境,那就需要手动安装pip。安装方法参见pip的网站(https://pip.pypa.io/en/latest/installing.html)。在Python 3.4中,pyvenv会自动安装pip

执行下述命令可在虚拟环境中安装Flask:

(venv) $ pip install flask

执行上述命令,你就在虚拟环境中安装Flask及其依赖了。要想验证Flask是否正确安装,你可以启动Python解释器,尝试导入Flask:

(venv) $ python
>>> import flask
>>>

如果没有看到错误提醒,那恭喜你——你已经可以开始学习第2章的内容,了解如何开发第一个Web程序了。

目录

  • 版权声明
  • O'Reilly Media, Inc.介绍
  • 前言
  • 第一部分 Flask简介
  • 第 1 章 安装
  • 第 2 章 程序的基本结构
  • 第 3 章 模板
  • 第 4 章 Web表单
  • 第 5 章 数据库
  • 第 6 章 电子邮件
  • 第 7 章 大型程序的结构
  • 第二部分 实例:社会化博客程序
  • 第 8 章 用户认证
  • 第 9 章 用户角色
  • 第 10 章 用户资料
  • 第 11 章 博客文章
  • 第 12 章 关注者
  • 第 13 章 用户评论
  • 第 14 章 应用编程接口
  • 第三部分 成功在望
  • 第 15 章 测试
  • 第 16 章 性能
  • 第 17 章 部署
  • 第 18 章 其他资源
  • 关于封面图