Settings and Environment Variables
Basic Settings with Pydantic
Section titled “Basic Settings with Pydantic”from pydantic_settings import BaseSettings
class Settings(BaseSettings): database_url: str = "sqlite:///app.db" secret_key: str = "change-me" debug: bool = False api_prefix: str = "/api/v1"
class Config: env_file = ".env"
settings = Settings()Using Settings in Your App
Section titled “Using Settings in Your App”from justapi import JustAPIApp
app = JustAPIApp(title="My App", debug=settings.debug)
@app.get("/config")def get_config(): return { "debug": settings.debug, "api_prefix": settings.api_prefix, }.env File
Section titled “.env File”DATABASE_URL=postgresql://user:pass@localhost/dbSECRET_KEY=my-production-secretDEBUG=falseAPI_PREFIX=/api/v1Never commit .env files to version control. Add it to .gitignore.
Accessing Environment Variables
Section titled “Accessing Environment Variables”import os
# Standard library approachdebug = os.getenv("DEBUG", "false").lower() == "true"database_url = os.getenv("DATABASE_URL", "sqlite:///app.db")See Also
Section titled “See Also”- Lifespan Events — startup/shutdown
- Configuration Reference — all config options
- Deployment — Docker — environment in containers