# Flask

Adres: https://softwaredictionary.org/tr/terimler/flask
Kategori: Backend ve API'ler
Son güncelleme: 2026-10-03
Okunuşu: flask

Kısaca: Flask, yönlendirme, istek işleme ve şablonlar sağlayan, veritabanı ve proje yapısı gibi seçimleri geliştiriciye bırakan hafif bir Python web framework'üdür.

## Flask nedir?

Flask, Armin Ronacher tarafından yazıldı ve 2010'da yayımlandı; bakımını Pallets projesi yapıyor. Kendini bir mikro framework olarak tanımlar: çekirdeği küçüktür ve iki kütüphane üzerine kuruludur; HTTP ve WSGI altyapısı için Werkzeug, HTML şablonları için Jinja. Eksiksiz bir uygulama, birkaç dekoratörlü fonksiyondan oluşan tek bir dosya olabilir.

Route'lar `@app.route("/books/<int:id>")` gibi dekoratörlerle tanımlanır; fonksiyon bir string, bir şablon ya da Flask'in JSON'a çevirdiği bir sözlük döndürür. Geri kalan her şey eklentilerden gelir: veritabanları için Flask-SQLAlchemy, oturumlar için Flask-Login, formlar için Flask-WTF. Blueprint'ler de büyük uygulamaları modüllere böler.

Flask küçük web uygulamaları, iç araçlar, prototipler, eğitim ve basit API'ler için, ayrıca makine öğrenmesi modellerini bir HTTP endpoint'inin arkasına sarmak için popülerdir. Açık, sihirsiz tarzı her istekte ne olduğunu görmeyi kolaylaştırır; birçok Python geliştiricisinin web geliştirmeyi onunla öğrenmesinin nedeni de budur.

Sık yapılan bir yanlış, Flask'in yalnızca oyuncak projeler için olduğunu düşünmektir. Büyük uygulamalar da onun üzerinde çalışır; yalnızca ekipten, Django'nun kutudan çıktığı gibi sunduğu parçaları seçip düzenlemesini ister. Production'da yerleşik geliştirme sunucusunun değil, Gunicorn gibi bir WSGI sunucusunun arkasında çalışır.

## Önemli noktalar

- Flask, 2010'da yayımlanan hafif bir Python web framework'üdür.
- HTTP için Werkzeug, şablonlar için Jinja üzerine kuruludur.
- Route'lar @app.route gibi dekoratörlerle işaretlenmiş fonksiyonlardır.
- Veritabanları, kimlik doğrulama ve formlar seçtiğiniz eklentilerden gelir.
- Production uygulamaları Gunicorn gibi bir WSGI sunucusunun arkasında çalışır.

## Örnek: En basit Flask uygulaması

```python
from flask import Flask, jsonify, render_template

app = Flask(__name__)

BOOKS = {1: "Dune", 2: "Neuromancer"}

@app.route("/")
def home():
    return render_template("index.html", books=BOOKS)   # Jinja template

@app.route("/api/books/<int:book_id>")
def book(book_id):
    if book_id not in BOOKS:
        return jsonify(error="Not found"), 404
    return {"id": book_id, "title": BOOKS[book_id]}       # returned as JSON

# Development:  flask --app app run --debug
# Production:   gunicorn app:app
```

## Sık sorulan sorular

**Flask ile Django arasındaki fark nedir?**

Flask minimaldir ve veritabanı katmanınızı, formlarınızı ve yapınızı kendiniz seçmenize izin verir. Django ise ORM, yönetim paneli, kimlik doğrulama ve sabit bir proje düzeni içerir. Flask esneklik, Django daha fazla hazır özellik sunar.

**Flask API'ler için iyi mi?**

Evet, özellikle küçük ve orta ölçekli olanlar için. Otomatik doğrulama ve üretilmiş dokümantasyon gereken API'ler için çoğu zaman onun yerine FastAPI seçilir.

**WSGI nedir?**

Web Server Gateway Interface, Python web uygulamalarının web sunucularıyla konuşmasının standart yoludur. Flask uygulamaları birer WSGI uygulamasıdır ve Gunicorn ya da uWSGI gibi sunucularda çalışır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
