PYTHON/FLASK: Veritabanı Entegreli Todo List Uygulaması

Uygulama Görsel Galerisi

Uygulamanın farklı durumlarını gösteren görselleri inceleyebilirsiniz. Geçişler **ileri/geri ok tuşları** ile yapılır.

✨ 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.


Projenin Kaynak Kodunu İnceleyin