使用python-dotenv加载.env文件管理敏感信息,结合配置类区分开发与生产环境,通过系统或平台设置线上环境变量,确保安全与灵活切换。
在开发Flask应用时,合理配置Python环境变量能帮助我们管理敏感信息(如数据库密码、API密钥)和不同环境下的设置(开发、测试、生产)。直接把配置写进代码不仅不安全,还难以维护。下面介绍几种实用的环境变量配置方法。
最常见的方式是借助 python-dotenv 包,在项目根目录下创建 .env 文件来存储环境变量。
安装 python-dotenv:
pip install python-dotenv在项目根目录创建 .env 文件:
FLASK_APP=app.py在 Flask 应用入口文件(如 app.py)中加载变量:
from dotenv import load_dotenv这样 Flask 就能通过 os.getenv() 获取值:
import os为了区分不同环境,建议使用配置类组织设置。
创建 config.py 文件:
import os
back-secret')在应用中根据环境选择配置:
app = Flask(__name__).env 文件通常包含敏感数据,应加入 .gitignore 避免泄露。
在 .gitignore 中添加:
.env同时提供一个 .env.example 文件供团队成员参考:
# .env.example部署到服务器或云平台时,不推荐使用 .env 文件。应通过系统或平台方式设置。
例如在 Linux 服务器启动应用前导出变量:
export FLASK_APP=app.py使用 Gunicorn 部署时同样依赖系统环境变量。
在 Heroku、Vercel 或其他 PaaS 平台,可在控制台界面或配置文件中设置环境变量。
基本上就这些。本地用 .env,线上用平台配置,配合配置类灵活切换,Flask 环境变量管理就很清晰了。