简介
在本实验中,我们将学习如何将一个 Flask 应用部署到服务器上。我们会为我们的应用创建一个分发文件并将其安装在服务器上。本实验假设你对 Flask、Python 的虚拟环境以及命令行有基本的了解。
注意:你需要自己创建代码文件并在环境中运行它。你可以在 Web 5000 上预览 Flask 服务状态。
构建应用程序
首先,我们需要为我们的应用创建一个 wheel 文件。我们将为此使用build工具。如果你还没有安装build工具,请使用 pip 进行安装:
## 安装build工具
pip install build
现在,使用build工具来创建 wheel 文件:
## 构建wheel文件
python -m build --wheel
wheel 文件应该位于dist目录中,名称类似于flaskr-1.0.0-py3-none-any.whl。
在服务器上安装应用程序
将 wheel 文件复制到你的服务器。文件传输到服务器后,设置一个新的 Python 虚拟环境,并使用 pip 安装该 wheel 文件:
## 安装wheel文件
pip install flaskr-1.0.0-py3-none-any.whl
由于这是一个新环境,你需要再次初始化数据库:
## 初始化数据库
flask --app flaskr init-db
配置密钥
在生产环境中,你应该将密钥更改为一个随机值。要生成一个随机密钥,请运行以下命令:
## 生成一个随机密钥
python -c 'import secrets; print(secrets.token_hex())'
在实例文件夹中创建一个config.py文件,并将SECRET_KEY设置为生成的值。
#.venv/var/flaskr-instance/config.py
SECRET_KEY = 'your_generated_secret_key'
使用生产服务器运行应用程序
对于生产环境,你应该使用 WSGI 服务器而不是内置的开发服务器。我们将使用 Waitress 作为我们的 WSGI 服务器。
首先,安装 Waitress:
## 安装Waitress
pip install waitress
现在,告诉 Waitress 来运行你的应用程序:
## 使用Waitress运行应用程序
waitress-serve --call 'flaskr:create_app'
总结
在本实验中,我们学习了如何将一个 Flask 应用部署到生产服务器上。我们将应用构建成一个 wheel 文件,安装到服务器上,配置密钥,并使用生产 WSGI 服务器运行该应用。