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日

相关文章

  • SQL Server还原完整备份和差异备份的操作过程

    下面就是SQL Server还原完整备份和差异备份的操作过程: 1. 还原完整备份 1.1. 预备工作 在还原完整备份之前,需要进行以下预备工作: 确认备份文件的位置:确认要还原的完整备份文件的位置,可以是本地磁盘,也可以是网络共享文件夹等。 确认要还原的数据库名称:确认还原的完整备份文件对应的数据库名称,以便于在还原时指定正确的数据库。 确认还原的时间点:…

    database 2023年5月18日
    00
  • SQL Server中JSON函数的用法详解

    SQL Server中JSON函数的用法详解 本文将为大家详细讲解SQL Server 中JSON函数的用法,包括以下部分:1. JSON数据类型介绍2. JSON的查询、修改、删除和插入3. SQL Server中JSON函数的详细说明4. 函数示例说明 1. JSON数据类型介绍 在SQL Server2016中首次引入了JSON数据类型,使我们可以在S…

    database 2023年5月21日
    00
  • 细说SQL Server中的视图

    当我们需要获取数据库表数据的子集而不想更改表结构时,可以使用SQL Server中的视图(View)。视图是一个虚拟表,它没有自己的数据,而是从基本表中使用SELECT语句取回数据。本文将详细讲解SQL Server中视图的创建、使用以及性能考虑。 1. 视图的创建 1.1 创建基本表 在创建视图之前,我们需要首先创建一个基本表。以下是创建一个简单用户表的示…

    database 2023年5月21日
    00
  • mysql 8.0.22 zip压缩包版(免安装)下载、安装配置步骤详解

    MYSQL 8.0.22 zip压缩包版(免安装)下载、安装配置步骤详解 1. 下载MySQL zip压缩包 访问MySQL官网 https://dev.mysql.com/downloads/mysql/,在”MySQL Community Downloads”部分找到符合自己操作系统的版本。 找到”Archives”,选择版本8.0.22,并选择平台相应…

    database 2023年5月22日
    00
  • 关于Redis未授权访问的问题

    关于Redis未授权访问的问题是目前比较常见的web安全问题之一,因此详细讲解对于网站管理员和安全从业者都具有重要的参考价值。 什么是Redis未授权访问漏洞 Redis未授权访问是指未开启Redis访问密码等控制机制的情况下,导致攻击者可以直接通过Redis端口发送恶意命令,进而获取Redis服务上的敏感信息和控制权。 如何发现Redis未授权访问漏洞 首…

    database 2023年5月22日
    00
  • MySQL查看数据库状态命令详细讲解

    MySQL查看数据库状态命令详细讲解 介绍 MySQL作为一种开源的关系型数据库管理系统(RDBMS)在互联网应用和信息系统中广泛使用。当我们在使用MySQL时,我们需要了解如何查看数据库的状态、性能和活动。本文将详细讲解MySQL查看数据库状态命令的相关知识。 MySQL查看数据库状态命令 MySQL提供了许多指令用于查看数据库的状态,其中包括: show…

    database 2023年5月22日
    00
  • 详解Linux 服务管理两种方式service和systemctl

    详解Linux服务管理:两种方式service和systemctl Linux服务的管理是系统运维中重要的一个方面。服务是指Linux系统中运行的一些程序,能够提供特定的功能或服务。Linux中有几种服务管理工具,其中最常用的是service和systemctl。本文将详细讲解这两种服务管理方式的使用、区别和示例。 service命令 在早期的Linux系统…

    database 2023年5月22日
    00
  • 处理java异步事件的阻塞和非阻塞方法分析

    处理Java异步事件的阻塞和非阻塞方法分析 概述 在Java中处理异步事件时,常见的问题是如何避免阻塞程序,以便提高其响应能力和可伸缩性。这篇文章将探讨处理Java异步事件的阻塞和非阻塞方法,以及它们的优缺点。 阻塞处理 阻塞处理是最常见的方法,通常用于编写简单的单线程应用程序。在阻塞处理中,当调用异步方法时,线程将立即停止并等待直到异步事件返回结果。这会导…

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