python部署到生产环境

本文介绍了如何将Python应用程序构建为wheel格式的分发文件,并在另一台机器上进行安装。首先,确保安装wheel库,然后使用`python setup.py bdist_wheel`创建wheel文件。接着,通过pip在目标机器上安装此文件,并设置虚拟环境。对于生产环境,不应使用开发服务器,而应使用如Waitress这样的WSGI服务器,并配置SECRET_KEY以确保安全性。此外,还提到了如何初始化数据库和设置配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本教程假设您有一个要将应用程序部署到的服务器。它概述了如何创建分发文件并安装它,但不会详细说明要使用的服务器或软件.

构建和安装

当您想在别处部署应用程序时,您可以构建一个分发文件。Python 发行版的当前标准是wheel格式,扩展名为 .whl。确保首先安装了wheel库:

pip install wheel

使用 Python 运行 setup.py 为您提供了一个命令行工具来发出与构建相关的命令。 bdist_wheel 命令将构建一个轮子分发文件。

python setup.py bdist_wheel

您可以在 dist/flaskr-1.0.0-py3-none-any.whl 中找到该文件。文件名格式为{project name}-{version}-{python tag} -{abi tag}-{platform tag}。
将此文件复制到另一台机器上,设置一个新的 virtualenv,然后使用 pip 安装该文件。

pip install flaskr-1.0.0-py3-none-any.whl

Pip 将安装您的项目及其依赖项。
由于这是一台不同的机器,您需要再次运行 init-db 在实例文件夹中创建数据库。

export FLASK_APP=flaskr
flask init-db

当 Flask 检测到它已安装(未处于可编辑模式)时,它会为实例文件夹使用不同的目录。你可以在 venv/var/flaskr-instance 找到它。

配置密钥

应该在生产中更改为一些随机字节。否则,攻击者可以使用公共“dev”密钥来修改会话 cookie 或任何其他使用密钥的东西。

您可以使用以下命令输出随机密钥:

$ python -c 'import os; print(os.urandom(16))'

在实例文件夹中创建 config.py 文件,如果存在,工厂将读取该文件。将生成的值复制到venv/var/flaskr-instance/config.py。

SECRET_KEY = b'_5#y2L"F4Q8z\n\xec]/'

您还可以在此处设置任何其他必要的配置,尽管 SECRET_KEY 是 Fl​​askr 唯一需要的配置。

在生产服务器运行

在公共环境运行而不是在开发中运行时,不应使用内置的开发服务器(flask run)。开发服务器由 Werkzeug 提供以方便使用,但其设计并非特别高效、稳定或安全。
相反,使用生产 WSGI 服务器。比如要使用Waitress,首先要在虚拟环境中安装:

pip install waitress

您需要将您的应用程序告诉 Waitress,但它不像 flask run 那样使用 FLASK_APP。您需要告诉它导入并调用应用程序工厂以获取应用程序对象。

waitress-serve --call 'flaskr:create_app'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值