python load_dotenv 库作用和使用
备忘
通过对环境变量的调用和使用,确实能够简化开发环境的配置。
比如说在项目中可能会多次要使用到一些参数,我们可以把这些参数写入到配置文件中。
配置文件字符引号
配置文件中使用的字符不需要使用引号。
我们可以定义参数和参数值为下面的这种方式:
TOPICNAME_ZCHUB_POLICY=zchub_policy_queue
TOPICNAME_ZCHUB_DISCOURSE_SYNCHRONIZE=zchub_discourse_synchronize_queue
你可以使用单词export作为每行的前缀,这将会使python-dotenv 忽略该变量,但是你可以使用 source 命令运行该文件。
python-dotenv 可以用来修改 POSIX系统的环境变量.
变量的值是下面列表中定义的第一个值:
系统环境变量
- .env 文件中定义的值
- 默认值,如果有的话
- 空字符串
确保引用其他变量时用大括号{}包围,就像${HOME},因为像$HOME这样的字符串不会被认为是变量的引用。
`
CONFIG_PATH=${HOME}/.config/foo
DOMAIN=example.org
EMAIL=admin@${DOMAIN}
DEBUG=${DEBUG:-false}
变量转义符
是可以在变量中使用转义符的。
- 在单引号中可以使用的变量:
\\
, \'
- 在双引号中可以使用的变量:
\\
, \'
, \"
, \a
, \b
, \f
, \n
, \r
, \t
, \v
python-dotenv
是一个用于从 .env
文件加载环境变量的 Python 库。 .env
文件是一个简单的文本文件,包含键值对,用于定义软件项目的配置信息,如数据库连接信息、API 密钥等。这种方法可以帮助开发人员在项目开发过程中轻松管理配置信息,而无需将配置信息硬编码到代码库中。
作用
- 分离配置文件和代码: 通过将配置信息存储在
.env
文件中,可以将配置与代码隔离,以更安全、灵活地管理配置信息。
- 自动加载环境变量: 在启动应用程序时,
python-dotenv
可以自动将 .env
文件中的变量加载为环境变量,使这些变量在代码执行时可用。
- 提高安全性: 可以将敏感信息(如 API 密钥、数据库密码等)存储在
.env
文件中,并在项目中将该文件添加到 .gitignore
,以避免在版本控制系统中泄漏这些信息。
使用方法
-
安装 python-dotenv
:
使用 pip 安装:
pip install python-dotenv
-
创建 .env
文件:
在项目的根目录中创建一个 .env
文件,并将你的配置信息写入其中,例如:
DATABASE_URL=postgresql://user:password@localhost:5432/mydatabase
SECRET_KEY=mysecretkey
-
在 Python 代码中加载 .env
文件:
from dotenv import load_dotenv
import os
# 加载 .env 文件
load_dotenv()
# 现在可以通过环境变量访问
database_url = os.getenv('DATABASE_URL')
secret_key = os.getenv('SECRET_KEY')
print(f"Database URL: {database_url}")
print(f"Secret Key: {secret_key}")
通过 load_dotenv()
函数,你可以确保 .env
中的变量自动加载为环境变量,然后通过 os.getenv()
访问这些变量。
这样,你的应用程序可以轻松配置不同的环境(开发、测试、生产)而无需更改代码。