FastAPI अनुप्रयोगहरू pydantic-settings (BaseSettings) सँग कन्फिगरेशन व्यवस्थापन गर्छन् — एक क्लास जसले environment variables (र .env फाइलहरु) बाट कन्फिग पढ्छ सँग, कोडबाट राज गुप्त राखे र सुनिश्चित गर्छ कि कन्फिग सुरुमा सही छ।
FastAPI अनुप्रयोगहरू pydantic-settings (BaseSettings) सँग कन्फिगरेशन व्यवस्थापन गर्छन् — एक क्लास जसले environment variables (र .env फाइलहरु) बाट कन्फिग पढ्छ सँग, कोडबाट राज गुप्त राखे र सुनिश्चित गर्छ कि कन्फिग सुरुमा सही छ।
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 स्वचालित रूपमा प्रत्येक क्षेत्रलाई एक मिलाँचे environment variable बाट पढ्छ (जस्तै DATABASE_URL), प्रकारहरु रूपान्तरण गर्छ ("true" → bool, "10" → int), र validates गर्छ — एक हराएको आवश्यक मान वा गलत प्रकार तुरुन्त सुरुमा असफल हुन्छ स्पष्ट त्रुटि सँग (fail-fast)।
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}
सेटिङ्ग injection गरा एक cached dependency मार्फत तिनीहरूलाई testable बनाउँछ (परीक्षणमा override गर्न) र एकल उदाहरण सुनिश्चित गर्छ।
# .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)
उचित सेटिङ्ग व्यवस्थापन दुवै एक operational necessity (अनुप्रयोगहरूलाई dev/staging/production मा विभिन्न कन्फिग चाहिन्छ) र एक security requirement (database URLs र keys जस्ता गुप्त कहिले पनि source control मा hardcoded हुनु हुँदैन — एक सामान्य, गुरुतर उल्लङ्घन)।
Pydantic को BaseSettings idiomatic FastAPI समाधान प्रदान गर्छ, र यो बुझ्नु महत्त्वपूर्ण दैनिक ज्ञान हो।
यसका मुख्य फाइदाहरु: environment variables बाट कन्फिग पढ्ने (कोडबाट गुप्त राखे, twelve-factor दृष्टिकोण) स्वचालित type conversion र validation सँग — त्यसैले misconfiguration सुरुमा fast हुन्छ स्पष्ट त्रुटि सँग बरु एक भ्रामक runtime असफलता जस्तै।
dependency injection (सेटिङ्ग testable र singleton बनाउने) र gitignored .env फाइलहरु को अभ्यास सँग मिलाएर स्थानीय विकास को लागि, यो तपाईलाई सुरक्षित, validated, environment-appropriate कन्फिगरेशन दिन्छ।
सेटिङ्ग परिभाषित गर्न, तिनीहरू DI को माध्यमबाट प्रयोग गर्न, र गुप्त सुरक्षितरूपमा सम्हाल्न कसरी जान्नु उत्पादन-तयार FastAPI अनुप्रयोगहरु निर्माण को लागि मौलिक हो।
विस्तृत उत्तरसहित IT अन्तर्वार्ता प्रश्नहरूको पुस्तकालय — जुनियरदेखि सिनियरसम्म।
दान गर्नुहोस्