读取环境变量:全面指南

于开发进程里, 读取环境变量属于一项常见且关键的操作行为。环境变量乃是操作系统或者应用程序内所存储的键值对, 它们能够用于存储诸多配置信息, 像数据库连接字符串、API密钥、调试标志等之类。借由读取环境变量, 我们可以达成将配置信息与代码隔离开来, 进而提升代码的安全性以及可维护性。本文会深入细致地介绍读取环境变量的基础概念、运用方式、常见实践以及最佳实践。

基础概念, 目录里的, 使用方法, 常见实践, 最佳实践, 小结, 参考资料包含哪些, 关于基础概念里什么是环境变量。

于操作系统或者应用程序内所存储的全局变量, 便是环境变量, 它们能够于不一样的进程以及会话里被访问, 环境变量常常被用于去存储诸如路径、用户名、密码等这般的系统级配置信息, 在其中, 借由标准库当中的os模块, 我们能够对这些环境变量予以读取以及操作。

为什么要使用环境变量2. 使用方法使用 os.

Os模块给出一事之字典,其含当前进程之所有环境变量这般情形。吾等能够借由键去获取这些环境变量之值。

import os
 
# 获取单个环境变量的值
api_key = os.environ.get('API_KEY')
if api_key:
    print(f"API Key: {api_key}")
else:
    print("API Key not found.")
 
# 获取所有环境变量
for key, value in os.environ.items():
    print(f"{key}: {value}")

使用 os.()

用于获取单个环境变量值的 os.() 是一个更便利的函数, 它接受两个参数, 一个是环境变量的名称, 另一个是默认值(此为可选参数)。

import os
 
# 获取环境变量的值,如果不存在则返回默认值
database_url = os.getenv('DATABASE_URL', 'sqlite:///default.db')
print(f"Database URL: {database_url}")

3. 常见实践配置数据库连接

要是在进行Web应用开发之际, 我们一般来讲是需连接到数据库的。能够把数据库的连接信息存于环境变量当中呢, 如此一来就能够便捷利于地在不一样的环境里去切换数据库了。

import os
import psycopg2
 
# 从环境变量中获取数据库连接信息
db_host = os.getenv('DB_HOST', 'localhost')
db_port = os.getenv('DB_PORT', '5432')
db_name = os.getenv('DB_NAME', 'my_database')
db_user = os.getenv('DB_USER', 'my_user')
db_password = os.getenv('DB_PASSWORD', 'my_password')
 
# 连接到数据库
try:
    conn = psycopg2.connect(
        host=db_host,
        port=db_port,
        database=db_name,
        user=db_user,
        password=db_password
    )
    print("Connected to the database.")
except psycopg2.Error as e:
    print(f"Error connecting to the database: {e}")

处理 API 密钥

python 读取环境变量_Python读取环境变量指南_使用os.environ获取环境变量

于使用第三方应用程序编程接口之际, 我们得提供应用程序编程接口密钥。把应用程序编程接口密钥存放于环境变量里能够防止将其硬编码于代码之中。

import os
import requests
 
# 从环境变量中获取 API 密钥
api_key = os.getenv('OPENAI_API_KEY')
if api_key:
    headers = {
        'Authorization': f'Bearer {api_key}'
    }
    response = requests.get('https://api.example.com', headers=headers)
    print(response.json())
else:
    print("API Key not found.")

4. 最佳实践使用 .env 文件

对于位于开发环境情形下的我们而言, 能够借助来存储环境变量的是.env文件。且存在着这样一个, 在加载位于.env文件那里的环境变量方面扮演用于角色情形较为受到大家欢迎的库。

# .env 文件示例
API_KEY=your_api_key
DATABASE_URL=postgresql://user:password@host:port/database
from dotenv import load_dotenv
import os
 
# 加载 .env 文件
load_dotenv()
 
# 获取环境变量的值
api_key = os.getenv('API_KEY')
print(f"API Key: {api_key}")

错误处理

读取环境变量之际, 应开展错误处理之操作, 以此来保证代码具备稳健之特性。设若环境变量不存在之时, 那就理应提供默认之值, 或者抛出恰当之异常。

import os
 
api_key = os.getenv('API_KEY')
if not api_key:
    raise ValueError("API Key environment variable is not set.")

安全性

于生产环境里头, 得要保证环境变量具备安全性。能够运用加密机制去守护敏感信息, 像运用某某的说且某某的某某, 又或者AWS的某某某某。

5. 小结

环境变量的读取属于一项简单且重要的技能, 能使我们提升代码的安全性, 并增强其可维护性, 借助os模块以及相关库, 我们能够便利地读取并管理环境变量, 在实际的开发过程当中, 应当践行最佳实践, 像运用.env文件、开展错误处理以及保障安全性。

6. 参考资料

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐