返回介绍

环境变量

发布于 2025-01-02 21:53:56 字数 1336 浏览 0 评论 0 收藏 0

正如构建此应用时你所看到的,在启动服务器之前,有许多配置选项取决于在环境中设置的变量。 这包括密钥、电子邮件服务器信息、数据库 URL 和 Microsoft Translator API key。 你可能会和我一样觉得,这很不方便,因为每次打开新的终端会话时,都需要重新设置这些变量。

译者注:可以通过将环境变量设置到开机启动中,来保持它们在该计算机中的所有终端中都生效。

应用依赖大量环境变量的常见处理模式是将这些变量存储在应用根目录中的 .env 文件中。 应用在启动时会从此文件中导入变量,这样就不需要你手动设置这些变量了。

有一个支持 .env 文件的 Python 包,名为 python-dotenv 。 所以让我们安装这个包:

(venv) $ pip install python-dotenv

由于 config.py 模块是我读取所有环境变量的地方,因此我将在创建 Config 类之前导入 .env 文件,以便在构造类时设置变量:

config.py :导入.env 文件中的环境变量。

import os
from dotenv import load_dotenv

basedir = os.path.abspath(os.path.dirname(__file__))
load_dotenv(os.path.join(basedir, '.env'))

class Config(object):
    # ...

现在你可以创建一个 .env 文件并在其中写入应用所需的所有环境变量了。不要将 .env 文件加入到源代码版本控制中,这非常重要。否则,一旦你的密码和其他重要信息上传到远程代码库中后,你就会后悔莫及。

.env 文件可以用于所有配置变量,但是不能用于 Flask 命令行的 FLASK_APPFLASK_DEBUG 环境变量,因为它们在应用启动的早期(应用实例和配置对象存在之前)就被使用了。

以下示例显示了 .env 文件,该文件定义了一个安全密钥,将电子邮件配置为在本地运行的邮件服务器的 25 端口上,并且不进行身份验证,设置 Microsoft Translator API key,使用数据库配置的默认值:

SECRET_KEY=a-really-long-and-unique-key-that-nobody-knows
MAIL_SERVER=localhost
MAIL_PORT=25
MS_TRANSLATOR_KEY=<your-translator-key-here>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文