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日

相关文章

  • php常用ODBC函数集(详细)

    PHP常用ODBC函数集详解攻略 ODBC介绍 Open Database Connectivity(ODBC)是一种为访问不同的数据库提供一个标准化的应用程序接口(API)的技术。ODBC驱动程序来自于不同的数据库厂商,并提供一个软件层,在数据库和应用程序之间建立一个连接。 使用ODBC的好处是可以让应用程序更容易地实现对多种不同的数据库进行访问,而不必来…

    database 2023年5月22日
    00
  • Redis实现分布式队列浅析

    Redis实现分布式队列浅析 什么是Redis分布式队列 Redis分布式队列是一个基于Redis实现的队列,主要用于解决分布式系统中的异步任务处理。它的主要特点包括: 使用Redis作为底层存储,支持高并发、高吞吐量的队列服务 支持多个消费者并发消费队列任务,实现分布式任务处理 能够处理异常和失败的任务,保证任务数据的完整性和可靠性 实现分布式队列的关键技…

    database 2023年5月22日
    00
  • 用node和express连接mysql实现登录注册的实现代码

    首先我们需要确保已经安装好Node和MySQL,并且已经创建好了相应的数据库和数据表。 创建Express工程 首先,我们需要创建一个新的Express应用程序,可以通过执行以下命令进行创建: $ npm install -g express-generator $ express myapp $ cd myapp $ npm install 这样就可以创建…

    database 2023年5月21日
    00
  • Python中执行存储过程及获取存储过程返回值的方法

    在Python中执行存储过程并获取返回值通常可以通过Python的数据库连接库来完成。下面我们将通过以下步骤详细讲解Python中执行存储过程及获取存储过程返回值的方法: 创建数据库连接对象并连接数据库 首先需要使用Python中的数据库连接库连接到数据库。以MySQL为例,我们可以使用pymysql库来连接MySQL数据库: import pymysql …

    database 2023年5月21日
    00
  • MySQL创建新用户、增加账户的2种方法及使用实例

    MySQL是一款流行的关系型数据库管理系统,它允许用户创建多个账户以访问和管理数据库。本篇攻略将详细讲解如何通过两种不同的方式创建新用户和增加账户。 方法一:使用GRANT语句创建新用户 GRANT语句是MySQL中一个非常强大的命令,它可以让我们授予数据库用户的许可权限,并将其关联到一个或多个数据库对象上。在使用这个命令来创建用户时,我们需要先了解一些基本…

    database 2023年5月22日
    00
  • MongoDB和redis

    一 简介 MongoDB是一款强大、灵活、且易于扩展的通用型数据库1、易用性 MongoDB是一个面向文档(document-oriented)的数据库,而不是关系型数据库。不采用关系型主要是为了获得更好得扩展性。当然还有一些其他好处,与关系数据库相比,面向文档的数据库不再有“行“(row)的概念取而代之的是更为灵活的“文档”(document)模型。通过在…

    Redis 2023年4月13日
    00
  • 一文带你了解Python中pymysql的使用

    一文带你了解Python中pymysql的使用 1. 什么是pymysql pymysql是使用Python进行MySQL数据库操作的模块,它提供了使用Python操作MySQL数据库的接口。使用pymysql可以使用Python进行MySQL数据库的增、删、改、查等操作。 2. 安装pymysql 可以使用pip命令进行安装: pip install py…

    database 2023年5月22日
    00
  • 为什么分布式一定要有Redis?

      本文围绕以下几点进行阐述: 为什么使用 Redis 使用 Redis 有什么缺点 单线程的 Redis 为什么这么快 Redis 的数据类型,以及每种数据类型的使用场景 Redis 的过期策略以及内存淘汰机制 Redis 和数据库双写一致性问题 如何应对缓存穿透和缓存雪崩问题 如何解决 Redis 的并发竞争 Key 问题   为什么使用 Redis  …

    Redis 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部