前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在 CentOS 7 上安装 Flask

如何在 CentOS 7 上安装 Flask

作者头像
雪梦科技
发布2020-05-11 16:08:47
3.3K0
发布2020-05-11 16:08:47
举报
文章被收录于专栏:ITCoder

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:

代码语言:javascript
复制
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脚本激活虚拟环境:

代码语言:javascript
复制
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

代码语言:javascript
复制
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 如何加载应用:

代码语言:javascript
复制
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.0flask run命令之后,让服务器变得公开可访问。

在你的网络浏览器中打开http://127.0.0.1:5000,并且你将会展示“Hello World!”信息。

停止开发服务器,在终端中输入CTRL-C

1.6 解除虚拟环境

一旦你做完了这些工作,输入deactivate解除环境,并且你将返回正常的 shell。

代码语言:javascript
复制
deactivate

二、总结

你已经学会了在 CentOS 7 机器上创建一个 Python 虚拟环境,并且安装 Flask。想要创建更多的 Flask 开发环境,重复指南中我们提到的步骤。

如果你是一个 Flask 新手,浏览:Flask 文档页面并且学习如何开发你的第一个 Flask 应用。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年12月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、在 CentOS 7 上安装 Flask
    • 1.1 安装 Python 3 和 venv
      • 1.2 创建一个虚拟环境
        • 1.3 安装 Flask
          • 1.4 创建一个最小 Flask 应用
            • 1.5 测试开发服务器
              • 1.6 解除虚拟环境
              • 二、总结
              相关产品与服务
              云服务器
              云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档