✨ Proje Özeti ve Temel Teknolojiler
Bu proje, Python'ın mikro web çatısı **Flask** kullanılarak geliştirilmiş, temel **CRUD (Create, Read, Update, Delete)** operasyonlarını sergileyen basit ama tam işlevli bir yapılacaklar listesi uygulamasıdır. Odak noktası, veritabanı etkileşimini yönetmek için **Object-Relational Mapping (ORM)** prensiplerinin uygulanmasıdır.
Kullanılan Teknolojiler:
- Python (Ana Dil)
- Flask Framework (Çatı)
- Flask-SQLAlchemy (ORM)
- SQLite (Veritabanı)
- HTML/Bootstrap (Arayüz)
1. Flask-SQLAlchemy ile Veri Kalıcılığı ve ORM Uygulaması
Projenin çekirdeği, veritabanı işlemlerini kolaylaştıran ORM kullanımıdır. Flask-SQLAlchemy, ham SQL yazmak yerine Python sınıfları ve nesneleri üzerinden veri yönetimini sağlamıştır.
Model Tanımı ve Tablo Şeması
Veritabanındaki yapılacaklar tablosunu temsil eder. Sütunların tipleri açıkça tanımlanmıştır, bu da veritabanı şemasının netliğini garantiler.
Konfigürasyonun Önceliği Sorunu ve Çözümü
Uygulama bağlamının doğru kurulması için veritabanı URI'sinin ayarlanması yapılmıştır. Bu, Flask uygulamalarında sıkça karşılaşılan bir yapılandırma hatasının önüne geçmiştir.
2. CRUD Operasyonları ve RESTful Yönlendirme (Routing)
Uygulama, her biri belirli bir veritabanı işlemini temsil eden ayrı Flask route'ları üzerinden yönetilmektedir.
Ekleme (Create) İşleminin POST Metoduyla Ayrılması
Yeni bir görev ekleme işlemi, HTML formundan gelen veriyi işlemek için açıkça tanımlanmıştır. Bu, idempotent (aynı işlemi tekrar yapmama) prensibine uyum açısından önemlidir.
Dinamik ID Tabanlı Güncelleme ve Silme
Görev tamamlama ve silme işlemleri, URL'ye gömülü olan dinamik ID parametresi üzerinden hedeflenmiştir. Bu, veritabanında tek bir kaydın hassas bir şekilde yönetilmesini sağlar.
3. Atomik İşlemler ve Veri Bütünlüğü Kontrolü
Veritabanı üzerinde yapılan değişikliklerin güvenilir bir şekilde kaydedilmesi için session (oturum) yönetimine odaklanılmıştır.
Boolean Değerin Atomik Olarak Tersine Çevrilmesi
Görevin tamamlanıp tamamlanmadığını belirten `complete` durumu, tersine çevrilir. İki ayrı işlem yapmak yerine tek bir satır kod ile güncelleme mantığını çözer.
DB Kullanımı
Hem ekleme, hem güncelleme hem de silme işlemlerinden sonra yapılan değişikliklerin veritabanına kalıcı olarak yazılmasını ve veri bütünlüğünün korunmasını garanti eder.
4. Uygulama Yaşam Döngüsü ve Çalışma Ortamı Yönetimi
Uygulamanın başlatılması ve geliştirme ortamının optimize edilmesi için alınan teknik kararlar.
Tablo Oluşturma
Uygulamanın ilk çalıştırmasında veritabanı tablosunun (eğer yoksa) oluşturulması için kullanılmıştır. Bu, veritabanı işlemlerinin Flask uygulama bağlamı içinde güvenli bir şekilde yürütülmesini sağlar.
Hata Ayıklama Modu (Debug Mode)
Geliştirme sürecini hızlandırmak amacıyla kullanılmıştır. Bu, kodda yapılan her değişikliğin sunucunun otomatik olarak yeniden yüklenmesini (auto-reload) sağlar ve olası hataların anında tarayıcıda görülmesine olanak tanır.