Aplikace FastAPI spravují konfiguraci pomocí pydantic-settings (BaseSettings) — třídy, která čte konfiguraci z proměnných prostředí (a souborů .env) s , která drží tajemství mimo kód a zajišťuje, že je konfigurace při spuštění správná.
Aplikace FastAPI spravují konfiguraci pomocí pydantic-settings (BaseSettings) — třídy, která čte konfiguraci z proměnných prostředí (a souborů .env) s , která drží tajemství mimo kód a zajišťuje, že je konfigurace při spuštění správná.
from pydantic_settings import BaseSettings
class Settings(BaseSettings):
app_name: str = "My API"
database_url: str # required — must be provided
secret_key: str # required (a secret)
debug: bool = False
max_connections: int = 10
class Config:
env_file = ".env" # also read from a .env file
settings = Settings() # reads & VALIDATES env vars at startup
BaseSettings automaticky čte každé pole z odpovídající proměnné prostředí (např. DATABASE_URL), konvertuje typy ("true" → bool, "10" → int) a ověřuje — chybějící povinná hodnota nebo chybný typ se při spuštění hned nezdaří s jasnou chybou (selhání rychle).
from functools import lru_cache
from fastapi import Depends
@lru_cache # create the Settings once (cached)
def get_settings():
return Settings()
@app.get("/info")
def info(settings: Settings = Depends(get_settings)):
return {"app": settings.app_name, "debug": settings.debug}
Injektáž nastavení prostřednictvím mezipaměťované závislosti je testovatelná (přepsání v testech) a zajišťuje jednu instanci.
# .env — local config, GITIGNORED (never commit secrets)
DATABASE_URL=postgresql://localhost/mydb
SECRET_KEY=dev-secret
DEBUG=true
✓ Keep secrets in env vars / .env (gitignored); commit a .env.example documenting keys
✓ In production, inject config via the platform's environment / secret manager
✓ Validation at startup catches misconfiguration immediately (not deep in a request)
Správa správných nastavení je jak operační nezbytnost (aplikace potřebují různou konfiguraci v prostředích dev/staging/production) a bezpečnostní požadavek (tajemství jako adresy URL databází a klíče se nikdy nesmějí pevně kódovat ve správě verzí — běžné, vážné porušení).
BaseSettings Pydantic poskytuje idiomu FastAPI řešení a její pochopení je důležitá každodenní znalost.
Její klíčové výhody: čtení konfigurace z proměnných prostředí (udržení tajemství mimo kód, přístup dvanácti faktorů) s automatickou konverzí typu a ověřením — takže nesprávná konfigurace se při spuštění rychle nezdaří s jasnou chybou místo matoucího selhání za běhu.
V kombinaci s injektáží závislostí (která dělá nastavení testovatelným a singletonem) a praxí souborů .env ignorovaných gitem pro místní vývoj vám to dává bezpečnou, ověřenou, prostředí-vhodnou konfiguraci.
Vnímání jak definovat nastavení, používat je prostřednictvím DI a bezpečně zpracovávat tajemství je zásadní pro vytváření produkčních aplikací FastAPI.
Knihovna IT otázek k pohovoru s podrobnými odpověďmi — od Junior po Senior.
Přispět