CodeBlanks Logo Icon CodeBlanks

Proje tasarımı

İleri seviye finali iskeletini tasarlarsın.

Proje tasarımı

Bu 5 derslik projede bir görev API'si kuracaksın. Her ders bir katman ekler: önce async iskelet, sonra asyncio.gather, sonra SQLAlchemy ile veritabanı, sonra FastAPI yolu, son olarak bir decorator ile çağrı günlüğü.

import asyncio

async def fetch_tasks():
    return [...]

İlk ders sadece iskeleti kurar: bir async işlev, sabit bir görev listesi döndürür. Sonraki derslerde bu işlevi gerçek veritabanına bağlayacaksın. Tasarımın basit başlaması, katmanların net görünmesini sağlar.

Katman sırası

Projenin katmanları sırayla eklenir:

  1. Async iskelet: fetch_tasks işlevi.
  2. Async katman: asyncio.gather ile çok kaynak.
  3. Veritabanı: SQLAlchemy Task modeli.
  4. Yol: FastAPI /tasks.
  5. Decorator: log_call ile günlük.

Her dersin başlangıç kodu önceki dersin çözümünü içerir; yalnızca yeni katmanı eklersin. Bu, gerçek dünya projelerinin büyüme biçimidir.

Uygulama fetch_tasks iskeletini yaz

import asyncio ile başla. async def fetch_tasks(): tanımla ve gövdesinde return [{"id": 1, "title": "Görev 1"}, {"id": 2, "title": "Görev 2"}] yapsın. Sonra print(asyncio.run(fetch_tasks())) ile sonucu yazdır.

Başlangıç kodu

main.py
# asyncio modülünü içe aktar
# fetch_tasks adlı async bir işlev tanımla
# işlev sabit bir görev listesi döndürsün
# asyncio.run ile işlevi çalıştır ve sonucu yazdır

Örnek çözüm

main.py
import asyncio

async def fetch_tasks():
    return [{"id": 1, "title": "Görev 1"}, {"id": 2, "title": "Görev 2"}]

print(asyncio.run(fetch_tasks()))

Beklenen çıktı

[{'id': 1, 'title': 'Görev 1'}, {'id': 2, 'title': 'Görev 2'}]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bu projenin ilk dersi neyi tanımlar?

  • FastAPI uygulamasını
  • Async fetch_tasks iskeletini Doğru cevap
  • SQLAlchemy modelini
  • Decorator'u

Açıklama: İlk ders yalnızca async fetch_tasks iskeletini tanımlar.

2 fetch_tasks tanımını tamamla

Soru
async def fetch_tasks():
    ____
Cevap
async def fetch_tasks():
    return [...]

Açıklama: fetch_tasks bir liste döndürür.

3 Katmanları eşleştir

Kavram Anlamı
fetch_tasks Async iskelet
asyncio.gather Çok kaynak
Task Veritabanı modeli
@app.get FastAPI yolu

İleri seviye bölümündeki tüm dersler