Flask是一个免费的、开源的Python微型网络框架,旨在帮助开发者构建安全、可扩展和可维护的网络应用。Flask以Werkzeug为基础,使用Jinja2作为模板引擎。
与Django不同,Flask默认不包括ORM、表单验证或任何其他由第三方库提供的功能。Flask在构建时考虑到了扩展,也就是为Flask应用添加功能的Python包。
在Ubuntu上有不同的方法来安装Flask。
Flask软件包包含在Ubuntu的官方仓库中,可以使用apt软件包管理器进行安装。这是在Ubuntu 20.04上安装Flask最简单的方法,但没有在虚拟环境中安装那么灵活。而且,软件库中包含的版本可能落后于Flask的最新版本。
虚拟环境允许你为不同的Python项目创建一个孤立的环境。这样,你可以在一台电脑上拥有多个不同的Flask环境,并按项目安装特定版本的模块,而不用担心会影响其他Flask的安装。如果你把Flask安装到全局环境中,那么你的电脑上只能安装一个Flask版本。
在这篇文章中,我们将讨论如何在Ubuntu 20.04的Python虚拟环境中安装Flask。
$ python3 -V
输出结果应该如下。
$Python 3.8.5
创建虚拟环境的推荐方法是使用venv模块,它由python3-venv包提供。运行下面的命令来安装该包。
$ sudo apt install python3-venv
一旦模块安装完毕,我们就可以为Flask应用程序创建一个虚拟环境了。
导航到你要存储Python 3虚拟环境的目录。它可以是你的主目录或其他任何你的用户有读写权限的目录。
为 Flask 应用程序创建一个新目录并切换到该目录。
$ mkdir flask_app && cd flask_app
在该目录中运行以下命令来创建虚拟环境。
$ python3 -m venv venv
该命令将创建一个名为 venv 的目录,其中包含 Python 二进制文件、Pip 包管理器、标准 Python 库和其他支持文件的副本。你可以为这个虚拟环境使用任何你想要的名字。
要开始使用这个虚拟环境,你需要用 activate 脚本来激活它。
$ source venv/bin/activate
一旦激活,虚拟环境的bin目录将被添加到$PATH变量的开头。你的shell的提示符也会改变,显示你当前使用的虚拟环境的名称。在这个例子中,它是venv。
现在虚拟环境被激活了,使用Python软件包管理器pip来安装Flask。
$ pip install Flask
在虚拟环境中,你可以使用命令 pip 而不是 pip3,使用 python 而不是 python3。
为了验证安装情况,运行下面的命令,它可以打印Flask的版本。
$ python -m flask --version
在写这篇文章的时候,Flask的最新官方版本是1.1.2
$ Python 3.8.5
$ Flask 1.1.2
$ Werkzeug 1.0.1
你的Flask版本可能与本例中显示的版本不同。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
下面是代码的作用:
1、第一行导入Flask类。
2、第二行创建了一个Flask类的新实例。
3、route()装饰器被用来为/路由注册hello_world函数。当这个路由被请求时,该函数被调用,并将消息 "Hello World!"返回给客户端。
将文件保存为hello.py,然后回到你的终端窗口。
我们将使用flask命令来运行该应用程序,但在此之前,我们需要通过设置FLASK_APP环境变量来告诉shell该应用程序的工作。
$ export FLASK_APP=hello.py
$ flask run
上面的命令将启动开发内置服务器。
输出将看起来像下面这样。
* Serving Flask app "hello.py"
* 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开发服务器,你可以通过在flask运行命令中添加--host=0.0.0.0来使该服务器公开可用。
在你的网络浏览器中打开http://127.0.0.1:5000 ,你会看到 "Hello World!"的信息。
要停止开发服务器,请在终端上输入CTRL-C。
一旦你完成了你的工作,通过输入deactivate来停用环境,你将返回到你的正常shell。
deactivate