python(62) : 环境变量管理

1.说明

优先加载当前目录的".env"文件, ".env"格式如下:

bash 复制代码
# 应用配置
APP_NAME=我的APP
APP_VERSION=1.0.0
DEBUG=True

# 服务器配置
HOST=0.0.0.0
PORT=8001
TIMEOUT=30

# 日志配置
CONSOLE_LOG_LEVEL=DEBUG

2.python代码(config.py)

python 复制代码
import os
import sys

# pip install python-dotenv
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()


class Settings:
    def __init__(self):
        # 应用配置
        self.app_name = os.getenv("APP_NAME", "FastAPI App")
        self.app_version = os.getenv("APP_VERSION", "1.0.0")
        self.debug = os.getenv("DEBUG", "False").lower() == "true"

        # 服务器配置
        self.host = os.getenv("HOST", "0.0.0.0")
        self.port = int(os.getenv("PORT", 8001))
        self.timeout = int(os.getenv("TIMEOUT", 30))

        # MySQL配置
        self.mysql_host = os.getenv("MYSQL_HOST", "127.0.0.1")
        self.mysql_port = int(os.getenv("MYSQL_PORT", "3306"))
        self.mysql_user = os.getenv("MYSQL_USER", "root")
        self.mysql_password = os.getenv("MYSQL_PASSWORD", "123456")
        self.mysql_database = os.getenv("MYSQL_DATABASE", "test")
        self.mysql_charset = os.getenv("MYSQL_CHARSET", "utf8mb4")

        # MySQL连接池配置
        self.mysql_pool_size = int(os.getenv("MYSQL_POOL_SIZE", "10"))
        self.mysql_max_overflow = int(os.getenv("MYSQL_MAX_OVERFLOW", "20"))
        self.mysql_pool_timeout = int(os.getenv("MYSQL_POOL_TIMEOUT", "30"))
        self.mysql_pool_recycle = int(os.getenv("MYSQL_POOL_RECYCLE", "3600"))


settings = Settings()

3.使用

python 复制代码
import settings

pring(settings.app_name)
相关推荐
FL16238631291 分钟前
基于yolo11实现的车辆实时交通流量进出统计与速度测量系统python源码+演示视频
开发语言·python·音视频
华如锦11 分钟前
四:从零搭建一个RAG
java·开发语言·人工智能·python·机器学习·spring cloud·计算机视觉
向阳蒲公英24 分钟前
Pycharm2025版本配置Anaconda步骤
python
Darkershadow30 分钟前
蓝牙学习之uuid与mac
python·学习·ble
北海有初拥33 分钟前
Python基础语法万字详解
java·开发语言·python
PoppyBu1 小时前
Ubuntu20.04版本上安装最新版本的scrcpy工具
android·ubuntu
执念、坚持1 小时前
Property Service源码分析
android
Mqh1807621 小时前
day61 经典时序模型3
python
我想吃烤肉肉1 小时前
logger比print优秀之处
python
Cosmoshhhyyy1 小时前
《Effective Java》解读第32条:谨慎并用泛型和可变参数
java·python