0Pricing
FastAPI Backend Development Bootcamp · Ders

FastAPI Uygulamalarında Hata Ayıklama

IDE hata ayıklayıcılarını ve günlüklemeyi kullanmak dahil olmak üzere FastAPI için hata ayıklama tekniklerinde uzmanlaşın.

FastAPI Uygulamalarında Hata Ayıklama, CoddyKit'te ücretsiz bir FastAPI Backend Development Bootcamp dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, FastAPI Backend Development Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. FastAPI Backend Development Bootcamp kursu toplamda 4 dersten oluşur.

What is Debugging?

Hata ayıklamaya hoş geldiniz! Yazılımcılar olarak sadece kod yazmayız, aynı zamanda onu düzeltiriz. Hata ayıklama, yazılımınızdaki hataları veya 'bug'ları bulma ve çözme sürecidir.

Kodunuzun sadece düşündüğünüz gibi değil, gerçekte nasıl çalıştığını anlamanıza yardımcı olan temel bir beceridir.

  • Hataları Bulun: Sorunların tam olarak nerede oluştuğunu belirleyin.
  • Akışı Anlayın: Çalışma yolunu izleyin.
  • Durumu İnceleyin: Herhangi bir noktadaki değişken değerlerini görün.

The Simple `print()` Debug

Hata ayıklamanın en temel biçimi print() ifadelerini kullanmaktır. Değişkenlerin değerlerini görmek veya kodunuzun belirli bir bölümünün yürütülüp yürütülmediğini doğrulamak için bunları kodunuzun her yerine serpiştirebilirsiniz.

Hızlı olsalar da, print() ifadeleri çıktınızı karmaşıklaştırabilir ve daha sonra manuel olarak kaldırılmaları gerekir.

Bu basit örneği çalıştırmayı deneyin:

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}")

Structured Logging with Python

Daha sağlam hata ayıklama ve uygulama izleme için Python'ın yerleşik logging modülü, print() fonksiyonundan çok daha üstündür. İletileri önem derecelerine göre sınıflandırmanıza olanak tanır.

Temel günlük (log) seviyeleri:

  • DEBUG: Genellikle yalnızca geliştirme aşaması için kullanılan ayrıntılı bilgiler.
  • INFO: İşlerin beklendiği gibi çalıştığına dair onay.
  • WARNING: Beklenmedik bir durum meydana geldi, ancak yazılım hala çalışıyor.
  • ERROR: Ciddi bir sorun; yazılım bir işlevi yerine getiremedi.
  • CRITICAL: Programın devam edemeyebileceği kadar ciddi bir hata.

Basic Logging in Action

logging ile, hangi mesajların görüntüleneceğini düzeylerine göre kontrol edebilirsiniz. Ayrıca günlükleri dosyalara, ağa veya diğer hedeflere yönlendirebilirsiniz; bu da onu print() fonksiyonundan çok daha esnek kılar.

Farklı günlük düzeylerini çalışırken görmek için bu örneği çalıştırın:

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.")

Integrating Logging with FastAPI

Uvicorn tarafından desteklenen FastAPI uygulamaları, halihazırda Python'ın logging modülünü kullanır. Kendi günlük kaydınızı (logging) eklediğinizde, bunu genellikle Uvicorn'un çıktılarıyla birlikte görebilirsiniz.

Mesajlarınızı daha iyi düzenlemek ve çıktılarını ayrı ayrı kontrol etmek için uygulamanız adına isimlendirilmiş bir günlük kaydedici (logger) oluşturabilirsiniz.

İşte günlük kaydı entegre edilmiş basit bir FastAPI örneği:

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's `breakpoint()` Function

Python 3.7'den itibaren, programınızın yürütülmesini belirli bir satırda duraklatmak için yerleşik breakpoint() işlevini kullanabilirsiniz.

breakpoint() çağrıldığında, Python sizi bir hata ayıklayıcıya (genellikle pdb, yani Python Debugger) yönlendirir. Oradan değişkenleri inceleyebilir, kod üzerinde adım adım ilerleyebilir ve daha fazlasını yapabilirsiniz.

Bu, tam bir IDE kurulumuna ihtiyaç duymadan etkileşimli hata ayıklama yapmak için son derece güçlü bir yöntemdir.

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}")

Power of IDE Debuggers

Tümleşik Geliştirme Ortamı (IDE) hata ayıklayıcıları (VS Code, PyCharm veya diğerlerindeki gibi), en güçlü hata ayıklama araçlarıdır. Programınızın yürütülmesini kontrol etmek için görsel bir arayüz sunarlar.

Temel faydaları:

  • Görsel Kesme Noktaları (Breakpoints): Ayarlamak/kaldırmak için tıklayın.
  • Adım Adım Yürütme: Akışı hassas bir şekilde kontrol edin.
  • Değişken İnceleme: Tüm değişken değerlerini gerçek zamanlı olarak görün.
  • Çağrı Yığını (Call Stack): Mevcut noktaya nasıl geldiğinizi anlayın.

Setting & Using Breakpoints

Bir kesme noktası (breakpoint), kodunuza yerleştirdiğiniz ve hata ayıklayıcıya (debugger) o satıra ulaşıldığında yürütmeyi duraklatmasını söyleyen bir işaretçidir. Bu, programınızı belirli bir anda 'dondurmanıza' olanak tanır.

Çoğu IDE'de bir kesme noktası, duraklatmak istediğiniz kod satırının yanındaki boşluğa (satır numaralarının solundaki alan) tıklayarak ayarlanır. Uygulamanızı hata ayıklama modunda çalıştırdığınızda, uygulama orada duracaktır.

Navigating Code: Step Over, Into, Out

Yürütme bir kesme noktasında duraklatıldığında, IDE hata ayıklayıcıları kodunuzda gezinmeniz için kontroller sağlar:

  • Üzerinden Atla (Step Over): Mevcut kod satırını çalıştırır ve bir sonraki satıra geçer. Mevcut satır bir fonksiyonu çağırıyorsa, hata ayıklayıcı fonksiyonun içine girmeden fonksiyonun tamamını çalıştırır.
  • İçine Gir (Step Into): Mevcut satır bir fonksiyon çağrısı içeriyorsa, hata ayıklayıcı o fonksiyonun içine atlar ve böylece fonksiyonun iç mantığında hata ayıklamanıza olanak tanır.
  • Dışına Çık (Step Out): Mevcut fonksiyonun geri kalanını çalıştırır ve fonksiyonun çağrıldığı satıra geri döner.

Debugging Knowledge Check

Hata ayıklama teknikleri konusundaki anlayışınızı test edelim.

Debugging Essentials Recap

Harika bir iş çıkardınız! FastAPI uygulamalarınız ve Python kodlarınız için temel hata ayıklama tekniklerini incelediniz.

  • print(): Hızlı kontroller için pratik ve basit bir yöntem.
  • logging modülü: Üretim ve geliştirme ortamları için yapılandırılmış, esnek ve ölçeklenebilir.
  • breakpoint(): Python'un yürütmeyi durdurup hata ayıklayıcıya girmek için yerleşik yolu.
  • IDE Hata Ayıklayıcıları: Görsel adım adım yürütme ve durum incelemesi için en güçlü araçlar.

Bunlarda ustalaşmak, geliştirme ve problem çözme sürecinizi önemli ölçüde hızlandıracaktır. Pratik yapmaya devam edin!

Sıkça Sorulan Sorular

“FastAPI Uygulamalarında Hata Ayıklama” dersi ücretsiz mi?

Evet — “FastAPI Uygulamalarında Hata Ayıklama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve FastAPI Backend Development Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. FastAPI Backend Development Bootcamp kursu toplamda 4 dersten oluşur.

“FastAPI Uygulamalarında Hata Ayıklama” dersinde ne öğreneceğim?

IDE hata ayıklayıcılarını ve günlüklemeyi kullanmak dahil olmak üzere FastAPI için hata ayıklama tekniklerinde uzmanlaşın. FastAPI Backend Development Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

FastAPI Backend Development Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te FastAPI Backend Development Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“FastAPI Uygulamalarında Hata Ayıklama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu FastAPI Backend Development Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her FastAPI Backend Development Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Pytest ile Birim Sınamaları
  2. FastAPI Uç Noktalarını Tümleştirme Sınaması
  3. FastAPI Uygulamalarında Hata Ayıklama
  4. FastAPI Testlerinde Bağımlılıkları Taklit Etme
← FastAPI Backend Development Bootcamp Sayfasına Dön