FastAPI बैकएंड डेवलपमेंट बूटकैंप · पाठ

FastAPI अनुप्रयोगों की डीबगिंग

FastAPI के लिए डीबगिंग तकनीकों में निपुण हों, जिनमें IDE डीबगर और लॉगिंग का उपयोग शामिल है।

पाठ 3, कुल 4 में से11 चरण

FastAPI अनुप्रयोगों की डीबगिंग, CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

डिबगिंग क्या है?

डिबगिंग में आपका स्वागत है! डेवलपर के रूप में हम केवल कोड नहीं लिखते, बल्कि उसे ठीक भी करते हैं। डिबगिंग आपके सॉफ़्टवेयर में मौजूद त्रुटियों या 'बग' को खोजने और ठीक करने की प्रक्रिया है।

यह एक आवश्यक कौशल है, जो आपको यह समझने में मदद करता है कि आपका कोड वास्तव में कैसे व्यवहार करता है, न कि केवल यह कि आपके अनुसार उसे कैसे व्यवहार करना चाहिए।

  • त्रुटियाँ खोजें: समस्याएँ ठीक-ठीक कहाँ होती हैं, यह निर्धारित करें।
  • प्रवाह समझें: निष्पादन पथ का पता लगाएँ।
  • स्थिति की जाँच करें: किसी भी बिंदु पर वेरिएबल के मान देखें।

सरल `print()` डिबग

डिबगिंग का सबसे मूलभूत तरीका print() कथनों का उपयोग करना है। आप अपने कोड में अलग-अलग स्थानों पर इन्हें जोड़कर वेरिएबल के मान देख सकते हैं या यह पक्का कर सकते हैं कि आपके कोड का कोई विशेष भाग चल रहा है।

हालाँकि यह तेज़ तरीका है, लेकिन print() कथन आपके आउटपुट को अव्यवस्थित कर सकते हैं और बाद में उन्हें हाथ से हटाना पड़ता है।

यह सरल उदाहरण चलाकर देखें:

def calculate_sum(a, b):
    print(f"DEBUG: Input: a={a}, b={b}")
    result = a + b
    print(f"DEBUG: Output: result={result}")
    return result

if __name__ == "__main__":
    print("Starting calculation...")
    total = calculate_sum(5, 3)
    print(f"Final total: {total}")

Python के साथ संरचित लॉगिंग

अधिक मज़बूत डिबगिंग और अनुप्रयोग निगरानी के लिए Python का अंतर्निहित logging मॉड्यूल print() से कहीं बेहतर है। यह आपको संदेशों को उनकी गंभीरता के अनुसार वर्गीकृत करने देता है।

मुख्य लॉग स्तर:

  • DEBUG: विस्तृत जानकारी, आमतौर पर केवल विकास के दौरान।
  • INFO: यह पुष्टि कि सब कुछ अपेक्षा के अनुसार काम कर रहा है।
  • WARNING: कुछ अप्रत्याशित हुआ, लेकिन सॉफ़्टवेयर अभी भी काम कर रहा है।
  • ERROR: गंभीर समस्या, जिसके कारण सॉफ़्टवेयर कोई कार्य नहीं कर सका।
  • CRITICAL: अत्यंत गंभीर त्रुटि, जिसके कारण प्रोग्राम आगे चलना बंद कर सकता है।

लॉगिंग को कार्य में देखना

logging के साथ आप यह नियंत्रित कर सकते हैं कि उनके स्तर के आधार पर कौन-से संदेश दिखाए जाएँ। आप लॉग को फ़ाइलों, नेटवर्क या अन्य गंतव्यों पर भी भेज सकते हैं, जिससे यह print() की तुलना में कहीं अधिक लचीला बन जाता है।

अलग-अलग लॉग स्तरों को कार्य करते हुए देखने के लिए यह उदाहरण चलाएँ:

import logging

# Configure basic logging to show DEBUG level and above
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')

def process_data(data):
    logging.debug(f"Attempting to process data: {data}")
    if not data:
        logging.warning("Received empty data for processing!")
        return []
    
    processed = [item.upper() for item in data]
    logging.info(f"Data processed successfully. Items count: {len(processed)}")
    return processed

if __name__ == "__main__":
    logging.info("Application started.")
    result1 = process_data(["apple", "banana"])
    print(f"Result 1: {result1}")
    
    result2 = process_data([])
    print(f"Result 2: {result2}")
    logging.info("Application finished.")

FastAPI के साथ लॉगिंग को एकीकृत करना

Uvicorn द्वारा संचालित FastAPI अनुप्रयोग पहले से ही Python के logging मॉड्यूल का उपयोग करते हैं। जब आप अपनी लॉगिंग जोड़ते हैं, तो आप अक्सर उसे Uvicorn के आउटपुट के साथ देख सकते हैं।

आप अपने अनुप्रयोग के लिए नामित लॉगर बना सकते हैं, ताकि अपने संदेशों को बेहतर ढंग से व्यवस्थित कर सकें और उनके आउटपुट को अलग से नियंत्रित कर सकें।

एकीकृत लॉगिंग वाला FastAPI का सरल उदाहरण यहाँ दिया गया है:

import logging
from fastapi import FastAPI
import uvicorn

# Get a logger for our application module
logger = logging.getLogger("my-fastapi-app")
logger.setLevel(logging.INFO) # Set default level for this logger

# Add a console handler to the logger (if not already configured by uvicorn)
# This is often handled by uvicorn itself, but good to know for custom setup
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)

app = FastAPI()

@app.get("/hello/{name}")
async def say_hello(name: str):
    logger.info(f"API call: /hello/{name}")
    if name == "error":
        logger.error("Simulating an intentional error condition!")
        return {"message": f"Hello {name}, but an error occurred.", "status": "failed"}
    logger.debug(f"Successfully processed name: {name}") # Won't show with INFO level
    return {"message": f"Hello {name}", "status": "success"}

if __name__ == "__main__":
    # In a real setup, you'd run `uvicorn main:app --reload`
    # This block allows direct execution for demonstration
    logger.info("Starting FastAPI application for demonstration...")
    uvicorn.run(app, host="0.0.0.0", port=8000, log_level="info")

Python का `breakpoint()` फ़ंक्शन

Python 3.7 से आप अंतर्निहित breakpoint() फ़ंक्शन का उपयोग करके किसी विशिष्ट पंक्ति पर अपने प्रोग्राम का निष्पादन रोक सकते हैं।

जब breakpoint() को कॉल किया जाता है, तो Python आपको डीबगर में ले जाता है, जो अक्सर pdb यानी Python डीबगर होता है। वहाँ से आप चर की जाँच कर सकते हैं, कोड को क्रमशः चला सकते हैं और भी बहुत कुछ कर सकते हैं।

पूर्ण IDE सेटअप की आवश्यकता के बिना इंटरैक्टिव डीबगिंग के लिए यह बेहद शक्तिशाली है।

def calculate_discount(price, discount_percentage):
    if not (0 <= discount_percentage <= 100):
        print("Invalid discount percentage.")
        return price

    discount_amount = price * (discount_percentage / 100)
    # Uncomment the line below to pause execution here!
    # breakpoint()
    final_price = price - discount_amount
    return final_price

if __name__ == "__main__":
    print("Calculating final price...")
    item_price = 100
    discount = 15
    final = calculate_discount(item_price, discount)
    print(f"Original price: ${item_price}, Discount: {discount}%, Final price: ${final}")

IDE डीबगर की शक्ति

एकीकृत विकास परिवेश (IDE) के डीबगर, जैसे VS Code, PyCharm या अन्य में उपलब्ध डीबगर, सबसे शक्तिशाली डीबगिंग उपकरण हैं। ये आपके प्रोग्राम के निष्पादन को नियंत्रित करने के लिए एक दृश्य इंटरफ़ेस प्रदान करते हैं।

मुख्य लाभ:

  • दृश्य ब्रेकपॉइंट: क्लिक करके सेट या हटाएँ।
  • क्रमशः निष्पादन: प्रवाह को सटीक रूप से नियंत्रित करें।
  • चर की जाँच: सभी चर के मान वास्तविक समय में देखें।
  • कॉल स्टैक: समझें कि आप वर्तमान स्थिति तक कैसे पहुँचे।

ब्रेकपॉइंट सेट करना और उनका उपयोग करना

ब्रेकपॉइंट आपके कोड में रखा गया एक संकेतक है, जो डीबगर को बताता है कि उस पंक्ति पर पहुँचने पर निष्पादन रोक देना है। इससे आप किसी विशिष्ट क्षण पर अपने प्रोग्राम को 'स्थिर' कर सकते हैं।

अधिकांश IDE में ब्रेकपॉइंट सेट करने के लिए, जिस कोड पंक्ति पर रुकना है उसके पास, पंक्ति संख्याओं के बाईं ओर वाले क्षेत्र में बस क्लिक करें। जब आप अपना अनुप्रयोग डीबग मोड में चलाएँगे, तो वह वहीं रुक जाएगा।

कोड में आगे बढ़ना: आगे जाएँ, अंदर जाएँ, बाहर आएँ

जब किसी ब्रेकपॉइंट पर निष्पादन रुक जाता है, तब IDE डीबगर आपके कोड में आगे बढ़ने के लिए नियंत्रण प्रदान करते हैं:

  • आगे जाएँ: वर्तमान कोड पंक्ति को निष्पादित करके अगली पंक्ति पर जाता है। यदि वर्तमान पंक्ति किसी फ़ंक्शन को कॉल करती है, तो डीबगर उसमें प्रवेश किए बिना पूरे फ़ंक्शन को निष्पादित कर देता है।
  • अंदर जाएँ: यदि वर्तमान पंक्ति में किसी फ़ंक्शन को कॉल किया गया है, तो डीबगर उस फ़ंक्शन के अंदर चला जाता है, जिससे आप उसके आंतरिक तर्क को डीबग कर सकते हैं।
  • बाहर आएँ: वर्तमान फ़ंक्शन के शेष भाग को निष्पादित करके उस पंक्ति पर लौटता है जहाँ से फ़ंक्शन को कॉल किया गया था।

डीबगिंग की समझ जाँचें

आइए, डीबगिंग तकनीकों की आपकी समझ जाँचते हैं।

डीबगिंग की आवश्यक बातों का पुनरावलोकन

बहुत अच्छा! आपने अपने FastAPI अनुप्रयोगों और Python कोड के लिए महत्वपूर्ण डीबगिंग तकनीकों को जाना है।

  • print(): तुरंत जाँच के लिए तेज़ और सरल तरीका।
  • logging मॉड्यूल: उत्पादन और विकास के लिए सुव्यवस्थित, लचीला और विस्तार योग्य।
  • breakpoint(): निष्पादन रोककर डीबगर में प्रवेश करने का Python का अंतर्निहित तरीका।
  • IDE डीबगर: दृश्य रूप से क्रमशः निष्पादन और स्थिति की जाँच के लिए सबसे शक्तिशाली उपकरण।

इनमें दक्षता हासिल करने से आपके विकास और समस्या-समाधान की प्रक्रिया काफी तेज़ हो जाएगी। इनका अभ्यास करते रहें!

शुरुआत निःशुल्क

एआई शिक्षक के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
21
पाठ
84

अक्सर पूछे जाने वाले प्रश्न

क्या “FastAPI अनुप्रयोगों की डीबगिंग” पाठ निःशुल्क है?

हाँ — FastAPI बैकएंड डेवलपमेंट बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “FastAPI अनुप्रयोगों की डीबगिंग” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“FastAPI अनुप्रयोगों की डीबगिंग” में मैं क्या सीखूँगा?

FastAPI के लिए डीबगिंग तकनीकों में निपुण हों, जिनमें IDE डीबगर और लॉगिंग का उपयोग शामिल है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ FastAPI बैकएंड डेवलपमेंट बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर FastAPI बैकएंड डेवलपमेंट बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“FastAPI अनुप्रयोगों की डीबगिंग” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर FastAPI बैकएंड डेवलपमेंट बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Pytest के साथ यूनिट परीक्षण
  2. FastAPI एंडपॉइंट का एकीकरण परीक्षण
  3. FastAPI अनुप्रयोगों की डीबगिंग
  4. FastAPI परीक्षणों में निर्भरताओं का मॉकिंग
← FastAPI बैकएंड डेवलपमेंट बूटकैंप पर वापस जाएँ