본문 바로가기
Python tips

python-dotenv, pydantic_settings를 통한 환경 변수 관리

by 스티브 십잡스 2024. 3. 28.

FastAPI 사용 기준, main.py 파일과 동일한 경로에 .env 파일을 위치시켜야 한다.

# .env
ENVIRONMENT=LOCAL

python-dotenv 라이브러리가 .env 파일을 자동으로 읽는다.

from dotenv import load_dotenv

# setup environment
load_dotenv()
environment = os.getenv("ENVIRONMENT")

print(f"env: {environment}") # LOCAL

서버 환경 변수에 설정된 값은 load_dotenv()를 선언하지 않아도 된다.

 

pydantic_settings를 통해 환경 변수를 설정할 수도 있다.

import os
from enum import Enum

from typing import ClassVar
from pydantic_settings import BaseSettings, SettingsConfigDict


class Settings(BaseSettings):
    BASE_DIR: ClassVar[str] = os.path.dirname(os.path.dirname(__file__))
    model_config = SettingsConfigDict(
        env_file=os.path.join(BASE_DIR, env_file),  # env_file: .env, .env.dev 등
        env_file_encoding='utf-8',
        extra="ignore",
    )

    SOMETHING: str
    ...

env_file에 (.env, .env.dev) 처럼 여러 환경 파일을 넣을 수도 있다.

'Python tips' 카테고리의 다른 글

map(), filter(), pipe()를 활용하여 데이터 다루기  (0) 2024.04.08
Pydantic을 활용한 JSON, dict 다루기  (0) 2024.04.01
f-string  (0) 2024.03.28
파일 읽기와 쓰기  (0) 2024.03.25
파이썬 날짜 연산 (datetime X)  (0) 2024.02.15