Python-隐藏变量

在脚本中需要使用一些敏感信息(如API key,password)时,我们应该尽量避免将这些变量直接明码写在脚本中。

我们可以为这些变量创建环境,以隐藏这些敏感信息。

一、导入需要的库dotenv

dotenv用于读取项目中的.env文件中的环境变量,加载到Python环境中,适合用来管理

  • 数据库密码
  • API密钥
  • 调试开关
  • 本地与生产环境的配置差异
1
pip install python-dotenv

Successfully installed python-dotenv-1.1.0

二、使用方法

1 在项目中创建一个新的“环境”

在项目中创建一个名为.env的纯文本文件,存储键值对。

.env文件示例:

1
2
3
4
DEBUG=True
SECRET_KEY=mysecretkey123
DATABASE_URL=postgres://user:pass@localhost:5432/mydb
API_KEY=abcdefg1234567

2 在Python代码中使用

示例代码:

1
2
3
4
5
6
from dotenv import load_dotenv
import os

load_dotenv() # 自动读取 .env 文件
api_key = os.getenv("API_KEY")
print(api_key)

就开业成功读取.env中存储的敏感信息了。

3 记得在.gitignore中添加

防止在上传或者分享项目到开源平台时把保护好的隐私信息上传。

三、更复杂的场合

不同的开发环境配置

你可以为开发环境配置.enc.dev,而为生产环境配置.env.prod,以区别。并且这样可以避免在代码里面硬编码密码或者API的相关信息。

不同的加载

1
2
from dotenv import load_dotenv
load_dotenv(dotenv_path=".env.dev")

检查变量是否加载成功

1
2
if "SECRET_KEY" not in os.environ:
raise EnvironmentError("Missing SECRET_KEY!")
作者

Zhou

发布于

2025-05-31

更新于

2025-05-31

许可协议

评论

+ + +