1.说明
优先加载当前目录的".env"文件, ".env"格式如下:
# 应用配置
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)
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.使用
import settings
pring(settings.app_name)
26万+

被折叠的 条评论
为什么被折叠?



