Python İle Fast Nasıl Yapılır?

Python İle Fast Nasıl Yapılır?
Python İle Fast Nasıl Yapılır?

Python dünyasında yüksek performanslı, modern ve güvenli web uygulamaları geliştirmek, günümüz yazılım mimarilerinin en önemli gereksinimlerinden biri haline gelmiştir. Bu rehberimizde, modern web geliştiricilerinin sıklıkla araştırdığı Python İle Fast Nasıl Yapılır? sorusunun cevabını en ince ayrıntısına kadar inceleyeceğiz. "Fast" (sektörde bilinen adıyla FastAPI) kütüphanesi, asenkron (asynchronous) programlama desteği, yüksek hızı ve otomatik dokümantasyon üretme yeteneği ile 2026 yılında da modern backend (arka uç) geliştirme süreçlerinin merkezinde yer almaktadır.

Bu eğitim makalesi, sıfırdan ileri seviyeye adım adım bir Fast projesi inşa etmek isteyen yazılım geliştiricileri, teknik liderler ve öğrenciler için hazırlanmıştır. Makale boyunca teorik kavramlardan kaçınarak tamamen uygulanabilir, güvenli ve endüstri standartlarında çalışan kod örnekleri üzerinden ilerleyeceğiz. Bu eğitimin sonunda, kendi veri tabanına bağlı, veri doğrulaması yapılmış ve güvenlik önlemleri alınmış eksiksiz bir API (Uygulama Programlama Arayüzü) geliştirmeyi öğrenmiş olacaksınız.

Fast kütüphanesinin sunduğu en büyük avantajlardan biri, Python'ın tip ipuçlarını (type hints) kullanarak hem veri doğrulaması yapması hem de otomatik olarak Swagger ve ReDoc dokümantasyonlarını üretmesidir. Hazırsanız, geliştirme ortamımızı kurarak bu güçlü kütüphaneyi keşfetmeye başlayalım.

Python İle Fast Geliştirme İçin Ön Hazırlık ve Gereksinimler

Projemize başlamadan önce bilgisayarımızda gerekli olan araçların ve kütüphanelerin kurulu olduğundan emin olmalıyız. Fast uygulamaları, yüksek performanslı bir ASGI (Asynchronous Server Gateway Interface - Asenkron Sunucu Geçit Arayüzü) sunucusu olan Uvicorn ile birlikte çalışır. Bu nedenle hem Fast kütüphanesini hem de Uvicorn sunucusunu ortamımıza dahil etmemiz gerekir.

İlk olarak projemiz için izole bir çalışma alanı oluşturmak amacıyla bir sanal ortam (virtual environment) kuracağız. Sanal ortamlar, projenizin bağımlılıklarının bilgisayarınızdaki diğer Python projeleriyle çakışmasını engeller. Aşağıdaki adımları sırasıyla terminalinizde veya komut satırınızda çalıştırarak ön hazırlık sürecini tamamlayabilirsiniz.

# 1. Proje dizini oluşturun ve içine girin
mkdir fast_projesi
cd fast_projesi

# 2. Python sanal ortamı oluşturun (Python 3.10 veya üzeri önerilir)
python -m venv venv

# 3. Sanal ortamı aktif hale getirin
# Windows için:
venv\Scripts\activate
# macOS/Linux için:
source venv/bin/activate

# 4. Fast ve Uvicorn kütüphanelerini yükleyin
pip install fastapi uvicorn

Yukarıdaki komutlar başarıyla tamamlandıktan sonra, geliştirme ortamımız hazır hale gelmiş olacaktır. Fast kütüphanesi, Python'ın modern asenkron yapısını tam olarak desteklediği için sisteminizde güncel bir Python sürümünün (tercihen Python 3.10 ve üzeri) kurulu olması, performans ve güvenlik açısından kritik önem taşır.

Adım Adım İlk Fast Uygulamasını Oluşturma

Gereksinimleri tamamladıktan sonra, ilk çalışan uygulamamızı yazabiliriz. Bu adımda, istemciden gelen istekleri karşılayan ve JSON formatında yanıt dönen en temel Fast yapısını kuracağız. Proje dizininizde main.py adında bir dosya oluşturun ve aşağıdaki kodları bu dosyaya ekleyin.

Aşağıdaki örnek kod, Fast kütüphanesinin en temel kullanım şeklini ve bir rotanın (route) nasıl tanımlanacağını göstermektedir:

from fastapi import FastAPI

# Fast uygulama nesnesini başlatıyoruz
app = FastAPI(
    title="İlk Fast Uygulamam",
    description="Python ile Fast nasıl yapılır sorusuna yanıt veren başlangıç projesi.",
    version="1.0.0"
)

# Kök dizin (root) için bir GET rotası tanımlıyoruz
@app.get("/")
async def ana_sayfa():
    return {
        "mesaj": "Python ile Fast dünyasına hoş geldiniz!",
        "durum": "Aktif"
    }

Yazdığımız bu kodu test etmek için terminalinizde sanal ortamın aktif olduğundan emin olun ve aşağıdaki komutu çalıştırarak yerel sunucumuzu başlatın:

uvicorn main:app --reload

Bu komuttaki main:app ifadesi, main.py dosyasındaki app nesnesini çalıştırmak istediğimizi belirtir. --reload parametresi ise kodda bir değişiklik yaptığımızda sunucunun otomatik olarak yeniden başlatılmasını sağlar. Tarayıcınızı açıp http://127.0.0.1:8000 adresine gittiğinizde yazdığınız JSON yanıtını göreceksiniz. Ayrıca otomatik oluşturulan dokümantasyona erişmek için http://127.0.0.1:8000/docs adresini ziyaret edebilirsiniz.

Fast İle Parametre Yönetimi ve Veri Doğrulama

Gerçek dünya uygulamalarında, istemcilerden dinamik veriler almamız gerekir. Fast, URL yollarından (Path Parameters) ve sorgu parametrelerinden (Query Parameters) gelen verileri otomatik olarak ayrıştırır, belirtilen veri tipine dönüştürür ve doğrular. Eğer istemci yanlış bir veri tipi gönderirse, Fast geliştiricinin ekstra kod yazmasına gerek kalmadan otomatik olarak hata mesajı döner.

Aşağıdaki örnek kod, hem yol parametrelerinin hem de sorgu parametrelerinin nasıl güvenli bir şekilde kullanılacağını ve doğrulanacağını adım adım göstermektedir:

from fastapi import FastAPI, Path, Query
from typing import Optional

app = FastAPI()

# Yol parametresi (Path Parameter) ve sorgu parametresi (Query Parameter) örneği
@app.get("/urunler/{urun_id}")
async def urun_detay(
    urun_id: int = Path(..., title="Ürünün benzersiz kimlik numarası", ge=1),
    detay: bool = Query(False, description="Ürün detayları gösterilsin mi?"),
    kategori: Optional[str] = Query(None, max_length=50, description="Kategori filtresi")
):
    urun_bilgisi = {"urun_id": urun_id, "kategori": kategori}
    
    if detay:
        urun_bilgisi.update({"aciklama": "Bu ürün son teknoloji standartlarında üretilmiştir.", "stok": 120})
        
    return urun_bilgisi

Bu kod bloğunda, Path(..., ge=1) ifadesi kullanılarak urun_id değerinin en az 1 veya daha büyük bir tam sayı olması zorunlu kılınmıştır. Query fonksiyonu ile de sorgu parametrelerinin varsayılan değerleri ve sınırlandırmaları (örneğin maksimum karakter uzunluğu) belirlenmiştir. Tarayıcınızdan http://127.0.0.1:8000/urunler/5?detay=true&kategori=elektronik adresini çağırarak bu yapıyı test edebilirsiniz. Eğer urun_id yerine harf yazarsanız, sistemin otomatik olarak 422 hata koduyla veri doğrulama hatası döndüğünü göreceksiniz.

Fast İle POST İstekleri ve Pydantic Model Kullanımı

Veri tabanına yeni bir kayıt eklemek veya karmaşık veri yapılarını sunucuya göndermek için HTTP POST isteklerini kullanırız. Fast, gelen istek gövdesini (request body) doğrulamak ve Python nesnelerine dönüştürmek için Pydantic kütüphanesini kullanır. Pydantic modelleri, verinin şemasına tam uyumluluk sağlar ve güvenlik açıklarını (örneğin beklenmeyen veri enjeksiyonlarını) engeller.

Aşağıdaki örnek kod, yeni bir kullanıcı oluşturma isteğini karşılayan bir POST rotasını ve bu rotanın kullandığı Pydantic veri modelini içermektedir:

from fastapi import FastAPI, HTTPException, status
from pydantic import BaseModel, EmailStr, Field

app = FastAPI()

# Pydantic ile veri şeması tanımlıyoruz
class KullaniciKayitModeli(BaseModel):
    kullanici_adi: str = Field(..., min_length=3, max_length=20, description="Benzersiz kullanıcı adı")
    eposta: EmailStr = Field(..., description="Geçerli bir e-posta adresi")
    sifre: str = Field(..., min_length=8, description="En az 8 karakterli güvenli şifre")
    yas: int = Field(..., ge=18,                
Bu yazıya tepkinizi paylaşın:
Emre Yılmaz

Bilgi odaklı nasıl yapılır içerikleriyle karmaşık süreçleri herkes için anlaşılır kılıyorum. Okuyucularımın zamanını verimli kullanmalarını sağlayan stratejiler geliştiriyorum.

Yorumlar (0)

Yorum Yaz