pydantic_settings BaseSettings 애플리케이션 설정을 관리하기 위한 Pydantic클래스.
코드에 직접 적지않고 환경변수 .env 파일또는 운영체제 환경변수에 저장된 설정값을 자동으로 읽어오는 기능.
api키, 데이터베이스 주소, 비밀번호등을 코드에 하드코딩하면 보산상 좋지않으니 설정을 안전하고 일관되게 관리할수있도록 도와준다.
https://standout.tistory.com/1893
Pydantic으로 basemodel 와Field() 사용하기: schema, Pydantic, 기본값(default), 설명(description), 예시(example),
PydanticPython에서 데이터를 검증하고 관리하기 위한 라이브러리 데이터의 구조를 정의하는 클래스 BaseModel, 설정을 관리하는 클래스 BaseSettings가 있다. BaseModelPydantic에서 제공하는 부모클래스request
standout.tistory.com
BaseModel과 차이는 요청과 응답데이터 json데이터를 검증한다면 basesettings는 설정을 읽고 검증한다는것.
BaseModelBaseSettings
| 요청(Request)과 응답(Response) 데이터를 정의 | 프로그램 설정(Configuration)을 정의 |
| JSON 데이터를 검증 | 환경변수(.env, OS 환경변수)를 읽고 검증 |
| API 요청/응답에서 사용 | API 키, DB 주소, 포트 번호 등 설정 관리에 사용 |
| FastAPI에서 Request/Response 스키마로 사용 | 애플리케이션 설정 객체로 사용 |
BaseModel은 사용자가 주고받는 데이터(요청/응답)를 위한 모델
{
"username": "admin",
"password": "1234"
}
from pydantic import BaseModel
class LoginRequest(BaseModel):
username: str
password: str
request = LoginRequest(
username="admin",
password="1234"
)
print(request.username)
print(request.password)
BaseSettings는 프로그램이 사용할 설정값(API 키, DB 주소, 포트 등)을 위한 모델
API_KEY=abcd1234
MODEL=gemini-2.5-pro
PORT=8000
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
api_key: str
model: str
port: int
settings = Settings()
print(settings.api_key)
print(settings.model)
print(settings.port)