环境变量配置

为什么要设置环境变量

  • 分离配置与代码:避免将敏感信息硬编码在代码中
  • 多环境支持:轻松切换开发、测试、生产环境
  • 安全性提升:保护数据库密码、API密钥等敏感信息
  • 可维护性增强:集中管理所有配置项

环境变量配置实战

安装依赖
uv add pydantic-settings python-dotenv
创建配置文件

新建core/config.py文件

from pydantic_settings import BaseSettings, SettingsConfigDict


class Settings(BaseSettings):
    # 映射 .env 中的变量
    DB_HOST: str
    DB_USER: str
    DB_PASSWORD: str
    DB_NAME: str
    # 如果 .env 中没有 DB_PORT,可以设置默认值
    DB_PORT: int = 3306

    model_config = SettingsConfigDict(
        env_file=".env",
        env_file_encoding="utf-8",
        case_sensitive=False,  # 允许使用 db_host 或 DB_HOST
    )


# 实例化配置对象
settings = Settings()

新建全局.env文件

# 数据库相关配置
DB_HOST=127.0.0.1 #ip地址
DB_USER=root #用户名
DB_PASSWORD=123456#数据库密码
DB_NAME=admin#数据库名
验证环境变量配置成功

在main.py中测试

from fastapi import FastAPI
# 引入配置文件
from core.config import settings

app = FastAPI()


@app.get("/")
async def read_root():
		#打印相关配置信息
    print(f"Host: {settings.DB_HOST}")  # Host: 127.0.0.1
    print(f"User: {settings.DB_USER}")  # User: root
    print(f"Password: {settings.DB_PASSWORD}")  # Password: yjqwlb051093
    print(f"DB Name: {settings.DB_NAME}")  # DB Name: admin
    return {"Hello": "World"}


@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐