简介

python-dotenv 是一个用于管理环境变量的 Python 库,它可以让你将配置项(如 API 密钥、数据库连接字符串等)存储在 .env 文件中,并在代码中加载这些变量。这种做法非常有用,尤其是在开发、测试、和生产环境中,不同环境的配置可能不同。

1. 安装 python-dotenv

安装 python-dotenv 库,通过 pip 来安装:

pip install python-dotenv

2. 创建 .env 文件

在项目的根目录下创建一个 .env 文件,用来存储环境变量。文件中的内容通常是 KEY=VALUE 的形式。例如:

# .env 文件示例
DB_CONNECTION=postgres://admin:password123@localhost:5432/mydatabase
API_KEY=abcdef1234567890
APP_MODE=production

3. 加载环境变量

在 Python 脚本中使用 dotenv 来加载 .env 文件中的环境变量。以下是一个简单的示例:

from dotenv import load_dotenv
import os

# 加载 .env 文件中的环境变量
load_dotenv()

# 使用环境变量
db_connection = os.getenv('DB_CONNECTION')
api_key = os.getenv('API_KEY')
app_mode = os.getenv('APP_MODE')

print(f"Database Connection: {db_connection}")
print(f"API Key: {api_key}")
print(f"App Mode: {app_mode}")
  • load_dotenv():这个函数会自动加载 .env 文件中的变量并将其添加到 Python 的 os.environ 中;
  • os.getenv('VARIABLE_NAME'):通过 os.getenv() 函数访问环境变量。

4. 处理默认值

你可以为环境变量设置默认值,当变量在 .env 文件中没有定义时,使用默认值:

# 如果没有在 .env 中找到 DATABASE_URL,默认使用 "sqlite:///:memory:"
database_url = os.getenv('DATABASE_URL', 'sqlite:///:memory:')

5. 加载指定路径的 .env 文件

如果 .env 文件不在默认的路径下,可以通过指定文件路径来加载:

load_dotenv(dotenv_path='/path/to/your/.env')

6. 使用 .env 文件进行开发和部署

使用 .env 文件可以避免将敏感信息(如 API 密钥、数据库密码等)硬编码到源代码中。你可以在 .gitignore 文件中忽略 .env 文件,以防止它被提交到版本控制系统。

.gitignore 中添加:

# 忽略 .env 文件
.env

7. 环境变量的注意事项

  • 安全性:不要将包含敏感信息(如数据库密码、API 密钥等)的 .env 文件提交到代码仓库。
  • 跨平台兼容性:如果你在不同的操作系统上开发,确保 .env 文件的格式在各个平台上都能正确读取。

总结

python-dotenv 是一个很好的工具,能帮助你管理项目中的配置和环境变量,特别是在涉及敏感数据时。通过 .env 文件,你可以轻松地在开发、测试、生产等不同环境之间切换配置。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐