Flask
- 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
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:appSı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.
Sık karşılaştırılanlar
İlgili sayfalar
- PythonProgramlama Dilleri, s. 26Python, okunaklı sözdizimiyle bilinen; veri bilimi, otomasyon ve web arka uçlarında yaygın kullanılan, genel amaçlı ve dinamik tipli bir programlama dilidir.
- DjangoBackend ve API'ler, s. 10Django, ORM, yönetim paneli, kimlik doğrulama ve güvenlik korumalarıyla gelen açık kaynaklı bir Python web framework'üdür; bu sayede ekipler hızlı geliştirir.
- FastAPIBackend ve API'ler, s. 16FastAPI, standart tür ipuçlarıyla istekleri doğrulayan, veriyi dönüştüren ve OpenAPI dokümantasyonunu otomatik üreten modern bir Python API framework'üdür.
- Web SunucusuBackend ve API'ler, s. 46Web sunucusu, tarayıcılardan ve diğer istemcilerden gelen HTTP isteklerini alıp sayfa, dosya ya da veriyle yanıt veren yazılım veya onu çalıştıran makinedir.
- REST APIBackend ve API'ler, s. 38REST API, verileri URL'lerle tanımlanan kaynaklar olarak sunan ve istemcilerin onları standart HTTP metotlarıyla okuyup değiştirmesini sağlayan web API'sidir.
- APIBackend ve API'ler, s. 2API, bir yazılımın başka bir yazılımdan veri ya da işlem talep etmesini sağlayan, belgelenmiş ve öngörülebilir kurallar bütünüdür.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin