Flask 是一个为 Python 开发,帮助开发者构建安全,可伸缩,可维护网络应用的免费并且开源微网络框架。Flask 基于Werkzeug,使用Jinja2作为模板引擎。
与Django不同,默认的 Flask 不包含 ORM, 表单验证或者其他任何第三方库提供的功能。Flask 与扩展一起构建,这些扩展都是一些 Python 软件包,可以为 Flask 应用添加功能。
有不同的方法可以安装 Flask,这取决于你的需求。它可以在系统范围内 Python 虚拟环境中,使用 pip 进行安装。
Flask 软件包当然也被包括在 EPEL 软件源并且可以通过yum
包管理工具进行安装。这是在 CentOS 7 上安装 Flask 最简单的方法,但没有在虚拟环境中安装灵活。同时,被包含在软件源中的软件包版本肯定也落后于 Flask 的最新版本。
Python 虚拟环境的目标是为不同的 Python 项目创建一个隔离的环境。这种方式下,你可以在一个单机电脑上拥有很多不同的 Flask 环境,并且安装指定的版本模块,而不用担心它会影响其他的 Flask 安装。如果你将 Flask 安装进全局环境,那么你只能在你的电脑上安装一个 Flask 版本。
一、在 CentOS 7 上安装 Flask
在接下来的章节中,我们将会提供详细信息,讲述如何在 CentOS 7 上Python 虚拟环境下安装 Flask。
1.1 安装 Python 3 和 venv
我们将会从软件集合(SCL)软件源中安装 Python 3.6。
CentOS 7 自带 Python 2.7.5,它是 CentOS 基础系统中很重要的部分。SCL 将会允许你安装 Python3.x 的最新版本,并且不影响默认的 python v2.7.5,可以保证系统工具,例如 yum,可以继续正常工作。
通过安装包含在 CentOS 附加源的 CentOS SCL 发布文件,启用 SCL:
代码语言:javascript复制sudo yum install centos-release-scl
一旦软件源被启用,运行下面的命令安装 Python 3.6:
代码语言:javascript复制sudo yum install rh-python36
一旦 Python 3.6 被安装好,我们准备为我们的 Django 应用创建一个虚拟环境。
1.2 创建一个虚拟环境
切换到你想保存 Python 3 虚拟环境的目录。它可以是你的主目录或者任何你拥有读写权限的其他目录。
想要访问 Python 3.6,你需要使用scl
工具启动一个新的 shell:
scl enable rh-python36 bash
为你的 Flask 应用创建一个新的目录,并且导航进入:
代码语言:javascript复制mkdir my_flask_app
cd my_flask_app
运行下面的命令,创建一个新的虚拟环境:
代码语言:javascript复制python3 -m venv venv
这个命令将会创建一个目录,称为:venv
,它包含了一个 Python 二进制拷贝,Pip 包管理工具,标准 Python 库,和其他支持文件。你可以使用其他名字作为虚拟环境的名字。
使用activate
脚本激活虚拟环境:
source venv/bin/activate
一旦被激活,虚拟环境 bin 目录将会被添加到$PATH 环境变量的前面。你的 shell 提示符也会改变,它将显示你当前使用的虚拟环境的名称。在我们的例子中,这个名字是venv
。
1.3 安装 Flask
现在虚拟环境已经被激活了,你可以使用 Python 软件包管理工具 pip 来安装 Flask:
代码语言:javascript复制pip install Flask
代码语言:javascript复制在虚拟环境中,你可以使用命令`pip`替换`pip3`,使用`python`代替`python3`。
运行下面的命令,验证安装过程,它将打印 Flask 版本:
代码语言:javascript复制python -m Flask --version
在写这篇文章的时候,Flask 最新官方版本是 1.0.2。
代码语言:javascript复制Flask 1.0.2
Python 3.6.3 (default, Mar 20 2018, 13:50:41)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
你的 Flask 版本可能和这个显示的版本不一样。
1.4 创建一个最小 Flask 应用
在这个指南中,我们将会创建一个简单的 Hello World 应用,它会显示文本“Hello World!”。
使用你的文本编辑器,或者 Python IDE,并且创建下面的文件: ~/my_flask_app/hello.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
让我们逐行分析代码。
01.在第一行,我们插入 Flask 类。
02.下一步,我们创建一个 Flask 类的对象。
03.我们使用route()
将hello_world
函数注册到/
路由。当这个路由被请求时,hello_world
被调用,并且消息"Hello World!“被返回给客户端。
保存这个文件为hello.py
,并且返回你的终端窗口。
1.5 测试开发服务器
我们将会使用flask
命令来运行这个应用,但是在这之前,我们需要通过FLASK_APP
环境变量来告诉 Flask 如何加载应用:
export FLASK_APP=hello
flask run
上面的命令将会在内建的服务器中启动开发模式。
输出将会像下面这样:
代码语言:javascript复制 * Serving Flask app "hello"
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL C to quit)
如果你在虚拟环境中安装 Flask,并且你想访问 Flask 开发服务器,你可以通过附加--host=0.0.0.0
在flask run
命令之后,让服务器变得公开可访问。
在你的网络浏览器中打开http://127.0.0.1:5000
,并且你将会展示“Hello World!”信息。
停止开发服务器,在终端中输入CTRL-C
。
1.6 解除虚拟环境
一旦你做完了这些工作,输入deactivate
解除环境,并且你将返回正常的 shell。
deactivate
二、总结
你已经学会了在 CentOS 7 机器上创建一个 Python 虚拟环境,并且安装 Flask。想要创建更多的 Flask 开发环境,重复指南中我们提到的步骤。
如果你是一个 Flask 新手,浏览:Flask 文档页面并且学习如何开发你的第一个 Flask 应用。