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

当我们开发 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 库定义环境变量的方法 - Python技术站

(0)
上一篇 2023年5月21日
下一篇 2023年5月21日

相关文章

  • 简单谈谈MySQL的半同步复制

    MySQL的半同步复制是一种高可用性和数据一致性的数据复制方式,它可以在主节点提交事务后,等待至少一个从节点也提交了该事务才返回成功,保证了数据的可靠性,同时又不会像全同步复制一样影响主库的写入效率。下面是详细的攻略: 步骤一:修改MySQL的配置文件 在MySQL的配置文件(my.cnf)中,需要打开半同步复制选项: [mysqld] plugin-loa…

    database 2023年5月22日
    00
  • MySQL的语法及其使用指南

    MySQL的语法及其使用指南 MySQL是一个免费的关系型数据库管理系统,可用于存储和管理大量数据。本文将介绍MySQL的语法及其使用指南。 连接到MySQL 连接到MySQL需要使用MySQL客户端,可以使用命令行客户端或图形界面客户端。以下是使用命令行连接到MySQL的步骤: 打开终端或命令提示符。 输入以下命令连接到MySQL: mysql -u us…

    database 2023年5月22日
    00
  • MySQL 5.7常见数据类型

    MySQL 5.7支持多种不同的数据类型,包括数值、日期/时间、字符串、JSON等类型。在本文中,我们将详细讲解MySQL 5.7常见的数据类型,包括每种类型的特点、用法以及示例说明。 数值类型 MySQL 5.7支持多个数值类型,包括整型、浮点型、定点型等。 整型 我们常用的整型有TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。…

    database 2023年5月22日
    00
  • Php中使用Select 查询语句的实例

    下面是关于在PHP中使用Select查询语句的攻略: 1. 准备工作 在使用Select查询语句前,需要进行以下准备工作: 1.1 连接数据库 在PHP中连接数据库需要使用mysqli扩展或PDO扩展,这里以mysqli扩展为例,代码如下: // 创建连接 $conn = new mysqli($servername, $username, $passwor…

    database 2023年5月21日
    00
  • mysql导入失败

    mysqldump导出数据库表的数据会加上一些SQL的注释,这些注释会在批量执行SQL语句中造成错误,需要提前删除。 sql开始部分: SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_…

    MySQL 2023年4月13日
    00
  • Oracle安装过程中物理内存检查及临时temp空间不足问题解决

    下面是关于“Oracle安装过程中物理内存检查及临时temp空间不足问题解决”的完整攻略。 物理内存检查 在安装Oracle数据库时,会有一个物理内存检查环节,以确保当前系统的物理内存满足Oracle数据库运行的最小要求。如果物理内存没有达到最小要求,安装过程将无法继续。 最小要求 根据Oracle官方文档所述,Oracle数据库在不同的版本和系统平台下,物…

    database 2023年5月21日
    00
  • Linux系统中的rc.local自启动服务

    下面是详细讲解“Linux系统中的rc.local自启动服务”的完整攻略。 1. 简介 在Linux系统中,rc.local是一个管理系统启动时自动执行的脚本文件。它位于/etc目录下,可以用来实现系统启动时自动启动一些程序或服务。 2. rc.local的使用步骤 2.1 编写脚本 首先,在/etc目录下创建一个rc.local文件,可以使用命令: sud…

    database 2023年5月22日
    00
  • sql 时间函数 整理的比较全了

    SQL 时间函数攻略 SQL 时间函数是常用的函数之一,它们被用来操作与处理时间相关的数据,如日期、时间、时间戳等。本文将带你全面了解 SQL 时间函数,包括其常用的函数和使用场景。 常用的 SQL 时间函数 CURDATE() 和 NOW() CURDATE() 和 NOW() 是 SQL 中最常用的时间函数,分别用于返回当前日期和时间。CURDATE()…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部