pydantic-settings tự động đọc env vars và validate types.
Hỗ trợ .env file.
python
from pydantic_settings import BaseSettings, SettingsConfigDict
from functools import lru_cache
class Settings(BaseSettings):
model_config = SettingsConfigDict(
env_file=".env", env_file_encoding="utf-8"
)
app_name: str = "My API"
debug: bool = False
database_url: str # Required — không có default
secret_key: str
redis_url: str = "redis://localhost:6379"
access_token_expire_minutes: int = 30
@lru_cache # Singleton — đọc .env một lần
def get_settings() -> Settings:
return Settings()
settings = get_settings()