无法获取 Flask 应用程序中设置的环境变量

DBS*_*DBS 6 apache centos flask

我尝试在 CentOS 中将敏感信息设置为环境变量,并将它们传递给主文件中使用的 Flask 配置文件,即 init .py 。但这没有用。Flask 应用程序在 Apache 下运行。

我首先以 root 用户身份编辑 /etc/environment

MAIL_USERNAME="abcde@abc.com"
Run Code Online (Sandbox Code Playgroud)

然后注销,再次登录 然后通过运行验证 MAIL_USERNAME 是否已设置

echo $MAIL_USERNAME
Run Code Online (Sandbox Code Playgroud)

这很好用

在configuration.py中,这就是我设置MAIL_USERNAME的方式。

MAIL_USERNAME = os.environ.get('MAIL_USERNAME')
Run Code Online (Sandbox Code Playgroud)

出于测试目的,我打印出 MAIL_USERNAME

in __init__.py
print(MAIL_USERNAME)
Run Code Online (Sandbox Code Playgroud)

然后从终端,如果我运行

python3.4 __init__.py
Run Code Online (Sandbox Code Playgroud)

它打印出 MAIL_USERNAME 的正确值

但是,如果我在网络浏览器上进行测试,则 MAIL_USERNAME 未设置。它显示无。我通过查看 Apache 日志来验证这一点。

任何关于这是如何工作的想法将不胜感激。

谢谢

Sai*_*dia 3

使用 CLI,根据需要设置环境变量。在 Linux 和 macOS 上,这是通过export KEY=value.

之后,环境变量KEY将可通过 Python 脚本或 Flask 应用程序使用os.environ.get('KEY'),如下所示:

import os
print os.environ.get('key')

>>> value
Run Code Online (Sandbox Code Playgroud)