沃梦达 / 编程技术 / 数据库 / 正文

Python 使用 environs 库定义环境变量的方法

当我们开发 Python 项目时,往往需要在代码中使用一些隐私数据,例如 API 密钥、数据库密码等等。为了将这些隐私数据与代码分离,避免泄露风险,我们可以将这些数据存储在环境变量中,并在代码中读取这些环境变量。在 Python 中,可以使用

当我们开发 Python 项目时,往往需要在代码中使用一些隐私数据,例如 API 密钥、数据库密码等等。为了将这些隐私数据与代码分离,避免泄露风险,我们可以将这些数据存储在环境变量中,并在代码中读取这些环境变量。在 Python 中,可以使用 environs 库来方便地读取和使用环境变量。

以下是使用 environs 库定义环境变量的详细攻略:

1. 安装 environs 库

可以使用 pip 来安装 environs 库:

pip install environs

2. 引入 environs 库并定义环境变量

在 Python 代码中引入 environs 库,并定义需要使用的环境变量,例如:

import environs

env = environs.Env()

# 定义 API_KEY 环境变量,默认为空字符串
env.str('API_KEY', default='')

在上述代码中,我们首先引入了 environs 库,并创建了一个 env 对象。然后通过该对象的 str() 方法,定义了一个名为 API_KEY 的字符串类型的环境变量,并设置了默认值为空字符串。

除了 str() 方法,还有一些其他方法也可以用来定义环境变量,例如:

  • bool():定义布尔类型的环境变量
  • int():定义整数类型的环境变量
  • float():定义浮点数类型的环境变量
  • list():定义列表类型的环境变量

3. 读取环境变量并在代码中使用

使用 environs 定义环境变量后,我们可以通过以下方式在代码中读取这些环境变量:

api_key = env.str('API_KEY')

在上述代码中,我们使用 env.str() 方法来读取名为 API_KEY 的环境变量,并将其赋值给了变量 api_key

它还有以下几种使用方法:

api_key = env('API_KEY')  # 可以简写为这样
api_key = env.str('API_KEY', 'default_value')  # 传入默认值参数
api_key = env.bool('API_KEY', False)  # 传入默认值参数
api_key = env.int('API_KEY', 0)  # 传入默认值参数
api_key = env.float('API_KEY', 0.0)  # 传入默认值参数
api_key_list = env.list('API_KEY_LIST', ["default_value1", "default_value2"]) # 传入默认值参数,定义为列表类型

4. 示例说明

在下面的示例中,我们使用 environs 定义了两个环境变量,一个是名为 API_KEY 的字符串类型环境变量,另一个是名为 PORT 的整数类型环境变量,并在代码中读取这些环境变量:

import environs

env = environs.Env()

# 定义 API_KEY 环境变量,默认为空字符串
env.str('API_KEY', default='')

# 定义 PORT 环境变量,默认为 8080
env.int('PORT', default=8080)

# 读取 API_KEY 和 PORT 环境变量,并在代码中使用
api_key = env.str('API_KEY')
port = env.int('PORT')

print('API_KEY:', api_key)
print('PORT:', port)

输出结果:

API_KEY: xxxxxxxx
PORT: 8000

另外一个示例:

import environs

env = environs.Env()
env.read_env() # 从.env文件中读取环境变量

pg_username = env.str('PG_USERNAME')
pg_password = env.str('PG_PASSWORD')

print(pg_username, pg_password)

在这个示例中,我们使用 env.read_env() 方法从 .env 文件中读取环境变量,而不是从操作系统的环境变量中读取。

需要注意的是,如果我们在 .env 文件中定义了同名的环境变量,并且与操作系统环境变量不同,则 environs 优先使用 .env 文件中的值。

本文标题为:Python 使用 environs 库定义环境变量的方法

基础教程推荐