Flask Öğrenmenin En Kolay Yolu: Sıfırdan Profesyonelliğe Adım Adım Rehber
Web geliştirmeye Python ile girmek isteyenlerin karşısına çıkan ilk framework’lerden biri Flask’tır. Hafif yapısı, öğrenme kolaylığı ve esnek mimarisi sayesinde hem yeni başlayanların hem de profesyonellerin favorilerinden biridir. Bu rehberde Flask’ı sıfırdan öğrenebileceğiniz, mantığını kavrayabileceğiniz ve gerçek projelere temel oluşturabilecek şekilde adım adım anlatacağız.
Flask Nedir?
Flask, Python ile web uygulaması geliştirmeyi sağlayan minimalist bir framework’tür. “Minimalist” denmesinin sebebi özelliklerinin az olması değil, çekirdeğinin sade tutulmuş olmasıdır. Yani Flask size zorunlu kurallar dayatmaz; projeyi nasıl kuracağınız tamamen sizin kontrolünüzdedir.
Flask’ın temel amacı:
👉 Gereksiz karmaşıklık olmadan web uygulaması geliştirmek.
Arka planda iki güçlü yapı kullanır:
-
HTTP işlemleri için altyapı
-
HTML üretimi için şablon motoru
Bu sayede hem hızlı hem esnek bir geliştirme deneyimi sunar.
Neden Flask Kullanmalısınız?
Flask’ın bu kadar yaygın kullanılmasının önemli sebepleri vardır:
✔ Öğrenmesi Kolaydır
Başlangıç seviyesinde bile birkaç satır kodla çalışan bir site oluşturabilirsiniz.
✔ Tam Kontrol Sağlar
Projenin mimarisi size aittir. İstediğiniz kütüphaneyi ekleyebilir, istemediğinizi kullanmazsınız.
✔ Hafiftir ve Hızlıdır
Gereksiz modüller yüklemez. Bu da performans avantajı sağlar.
✔ Esnektir
Küçük bir blog sitesinden büyük bir API sistemine kadar her projeye uyarlanabilir.
✔ Topluluk Desteği Güçlüdür
Sorun yaşadığınızda çözüm bulmanız genellikle dakikalar sürer.
Kurulum ve İlk Uygulama
1) Kurulum
Önce Flask’ı yükleyelim:
pip install flask
2) İlk Flask Uygulaması
from flask import Flask
app = Flask(__name__)
@app.route("/")
def ana_sayfa():
return "Merhaba, ilk Flask uygulaman çalışıyor!"
app.run(debug=True)
Çalıştırdıktan sonra tarayıcıya şu adresi yazın:
http://127.0.0.1:5000
Ekranda mesajı görüyorsanız tebrikler 🎉
İlk web uygulamanız hazır.
Flask’ın Temel Bileşenleri
Flask’ı gerçekten anlamak için şu üç kavramı bilmeniz gerekir:
1) Routing (URL Yönetimi)
Routing, URL ile fonksiyon eşleştirme işlemidir.
@app.route("/selam/<isim>")
def selam(isim):
return f"Merhaba {isim}"
Tarayıcıya /selam/Ali yazarsanız çıktı:
Merhaba Ali
2) Template Kullanımı
HTML sayfalarını dinamik hale getirmek için template sistemi kullanılır.
Python dosyası:
from flask import render_template
@app.route("/profil/<isim>")
def profil(isim):
return render_template("profil.html", isim=isim)
HTML dosyası:
<h2>Hoş geldin {{ isim }}</h2>
Çift süslü parantez = değişken yazdırma.
3) Form İşlemleri
Kullanıcıdan veri almak için form kullanılır:
from flask import request
@app.route("/giris", methods=["GET","POST"])
def giris():
if request.method == "POST":
ad = request.form["ad"]
return f"Giriş yapan kullanıcı: {ad}"
return '''
<form method="post">
<input name="ad">
<button>Gönder</button>
</form>
'''
Flask ile Veritabanı Kullanımı
Gerçek uygulamalarda veri saklamak gerekir. Bunun için ORM sistemi kullanılır. En yaygın çözüm: SQLAlchemy.
Kurulum:
pip install flask-sqlalchemy
Örnek model:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
class Kullanici(db.Model):
id = db.Column(db.Integer, primary_key=True)
isim = db.Column(db.String(100))
Veri ekleme:
yeni = Kullanici(isim="Ahmet")
db.session.add(yeni)
db.session.commit()
Bu yapı sayesinde SQL yazmadan veritabanı işlemleri yapılabilir.
Flask Güvenlik Önlemleri
Flask sade olduğu için güvenlik otomatik gelmez; geliştirici ekler. Dikkat edilmesi gereken temel noktalar:
-
Production ortamında debug kapalı olmalı
-
Gizli anahtar kullanılmalı
-
Formlara CSRF koruması eklenmeli
-
Kullanıcı girdileri filtrelenmeli
-
HTTPS kullanılmalı
-
SQL sorguları elle yazılmamalı
-
Oturum yönetimi güvenli yapılmalı
Profesyonel projelerde ayrıca:
-
Reverse proxy
-
WSGI sunucusu
-
Rate limit
-
Log sistemi
kullanılması önerilir.
Sonuç: Flask Kimler İçin Uygun?
Flask özellikle şu kişiler için idealdir:
-
Web geliştirmeye yeni başlayanlar
-
API geliştiren backend geliştiriciler
-
Mikroservis mimarisi kuran ekipler
-
Minimal ama güçlü altyapı isteyenler
Kısaca özetlersek:
Flask = Basit başlangıç + Profesyonel ölçeklenebilirlik
Doğru yapılandırma ve modüler geliştirme ile Flask, küçük bir projeden kurumsal seviyeye kadar büyüyebilen bir altyapı sunar.
Kaynakça
🔗 Flask Resmi Dokümantasyonu – Flask’ın en güncel ve yetkili kaynağıdır. Flask’ın kurulumu, routing, template kullanımı, konfigürasyon ve yaygın uygulama örnekleri burada detaylı anlatılır.
👉 https://flask.palletsprojects.com/
🔗 Flask (web framework) – Wikipedia – Flask’ın tanımı, kısa tarihçesi ve mimari yapısı hakkında tarafsız özet bilgi.
👉 https://en.wikipedia.org/wiki/Flask_(web_framework)
🔗 Flask-SQLAlchemy Dokümantasyonu – SQLAlchemy eklentisi ile Flask uygulamalarında veritabanı kullanımı için resmi rehber.
👉 https://flask-sqlalchemy.palletsprojects.com/
🔗 Python Resmi Web Sitesi – Python’un kurulumu ve paket yönetimi (pip gibi) için yetkili kaynak.
👉 https://www.python.org/
🔗 Microsoft Learn – Flask + PostgreSQL Uygulaması – Microsoft’un resmi eğitim içeriği ile Flask ve gerçek veritabanı bağlantısı örneği.
👉 https://learn.microsoft.com/tr-tr/azure/app-service/tutorial-python-postgresql-app-flask
🔗 SQLAlchemy Resmi Dokümantasyonu – Flask dışı ama SQLAlchemy hakkında doğrudan yetkili kaynak.
👉 https://docs.sqlalchemy.org/
🔗 Werkzeug – WSGI Araç Takımı — Flask’ın temelini oluşturan sunucu araç seti hakkında bilgiler.
👉 https://werkzeug.palletsprojects.com/
🔗 Jinja2 Template Motoru — Flask ile dinamik HTML üretimi yapmanızı sağlayan resmi template motoru.
👉 https://jinja.palletsprojects.com/