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 |