Flask SQLAlchemy Kullanımı: Flask Uygulamalarında Veritabanı Yönetimi
Bu rehberde Flask uygulamalarında veritabanı işlemlerini SQLAlchemy ile nasıl yöneteceğinizi öğreneceksiniz.
Model tanımı, kayıt ekleme, listeleme, güncelleme ve silme işlemleri ele alınır.
🧠 Teknik Özet
Bu rehber Flask-SQLAlchemy kullanımını anlatır.
Amaç, Flask projelerinde kalıcı veri yönetimini kolaylaştırmaktır.
Adımlar kurulum, model tanımı, CRUD ve migration işlemleridir.
Ön Koşullar
- Python 3 kurulu bir sistem
- Flask temel bilgisi
- Sanal ortam (virtualenv) kullanımı
1. Flask ve Flask-SQLAlchemy Kurulumu
Gerekli paketleri yükleyin:
pip install Flask Flask-SQLAlchemy
- Bu komut Flask ve ORM eklentisini kurar.
2. Veritabanı Bağlantısı Oluşturma
- Uygulama dosyasını açın:
nano app.py
- SQLite bağlantısı tanımlayın:
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///database.db"
- Bu ayar yerel bir veritabanı dosyası oluşturur.
3. Model (Tablo) Tanımlama
- Örnek öğrenci modeli:
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True)
firstname = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(80), unique=True)
- Bu sınıf bir veritabanı tablosunu temsil eder.
4. Veritabanı ve Tablo Oluşturma
- Flask shell’i başlatın:
flask shell
- Tabloları oluşturun:
db.create_all()
- Bu komut model tanımlarına göre tablo üretir.
5. Kayıt Ekleme (Create)
- Yeni kayıt ekleme örneği:
student = Student(firstname="Ali", email="[email protected]")
db.session.add(student)
db.session.commit()
- Bu işlem veriyi kalıcı hale getirir.
6. Kayıtları Listeleme (Read)
- Tüm kayıtları çekin:
Student.query.all()
- Bu komut tablo içeriğini döndürür.
7. Kayıt Güncelleme (Update)
- Mevcut veriyi değiştirin:
student.email = "[email protected]"
db.session.commit()
- Bu işlem ilgili kaydı günceller.
8. Kayıt Silme (Delete)
- Veri silme örneği:
db.session.delete(student)
db.session.commit()
- Bu işlem kaydı veritabanından kaldırır.
9. Migration Yönetimi (Flask-Migrate)
- Şema değişiklikleri için Flask-Migrate kurun:
pip install Flask-Migrate
- İlk migration’ı oluşturun:
flask db init
flask db migrate -m "initial"
flask db upgrade
- Bu adımlar tablo değişikliklerini güvenli şekilde uygular.
Performans ve İpuçları
-
Büyük listelerde limit() kullanın
-
Gereksiz kolonları sorgulamayın
-
İndeks ekleyerek sorguları hızlandırın
Sıkça Sorulan Sorular
1. Flask-SQLAlchemy ne işe yarar? Veritabanı işlemlerini Python nesneleriyle yönetir.
2. SQLite yerine PostgreSQL kullanabilir miyim? Evet, sadece bağlantı adresini değiştirmeniz yeterlidir.
3. Migration neden gereklidir? Veri kaybetmeden tablo yapısını günceller.
4. ORM performansı düşürür mü? Yanlış kullanımda evet, doğru sorgularla sorun olmaz.
Sonuç
Bu rehberle Flask-SQLAlchemy kullanarak tam bir CRUD altyapısı kurdunuz. Kodunuz veritabanından bağımsız ve ölçeklenebilir hale geldi.
Bu yapıyı Rabisu Bulut üzerinde çalışan Flask servislerinde güvenle kullanabilirsiniz.