Flask Dersleri

Flask ile Veritabanı İşlemleri (SQLite)

Merhaba Arkadaşlar, Mobilhanem.com da Flask Derslerine Flask ile Veritabanı İşlemleri (SQLite) yazısı ile birlikteyiz. Bu yazı da Flask ile veritabanı işlemlerini yapacağız. Bunun için bizde örnek olarak kullanıcı kayıt formu bilgilerini veritabanına kaydetmeyi ve veritabanından bilgileri okumayı işleyeceğiz.

Başlıkta da gördüğünüz gibi veritabanı olarak SQLite son versiyonu SQLite3 üzerinden dersi anlatacağım. Bir sonraki derste iste  MySQL ve MongoDB üzerinden anlatacağım. Veritabanı olarak SQLite kullanıp da SQLite hakkında bir iki cümle yazmamak olmaz.

Niçin SQLite?

SQLite,   C ve C++ programlama dilleriyle yazılmış açık kaynaklı bir Veritabanı Yönetim Sistemidir. Ayrıca SQLite sunucu yazılımı ve yapılandırma gereksinimi olmayan bir SQL veritabanı yönetim sistemidir. SQLite’ı diğer veritabanı motorlarından ayıran başlıca özelliği basit olmasıdır.

Her şeyden önce SQLite Python’un 2.5 sürümlerinden bu yana Python ile birlikte hazır gelmektedir. Dolayısıyla eğer kullandığınız Python sürümü 2.5 veya üstü ise SQLite’ı Python’daki herhangi bir modül gibi içe aktarabilir ve kullanmaya başlayabilirsiniz. Ayrıca SQLite veritabanını local üzerinde geliştirmekte olduğunuz uygulamalar için  çok basit bir şekilde kullanabilirsiniz.  SQLite veritabanı görsel olarak incelemek veya herhangi bir işlemi manuel olarak yapmak için SQLite DB Browser bu adresten bilgisayarınıza uygun olanı indirebilirsiniz. Merak etmeyin kurulumu çok basittir.

İlk önce SQLite3 projemize dahil edelim.

Gördüğünüz gibi çok basit bir şekilde SQLite projemize dahil ettik şimdi. Veritabanı oluşturalım ve veritabanı bağlantısı yapalım.

Bu şekilde eğer veritabanımız yoksa yeni veritabanı oluşturmuş olacağız. Eğer veritabanı varsa zaten yeni veritanı oluşturmayacak veritabanı bağlantısı sağlanmış olacak.

Flask ile Veritabanı İşlemleri

NOT: SQL ile ilgili Temel Komutlar ve Örnekler için veya Sıfırdan SQL öğrenmek için tıklayınız.

Şimdi veritabanı üzerinde CRUD işlemlerimizi yapmak için  bir cursor yani imleç oluşturuyoruz. Bunun için cursor() metodunu kullanıyoruz.

Şimdi veritabanına verileri kaydetmek için bir tablo oluşturuyoruz.

Şimdi verileri ekleyelim bunun için bir önceki dertse WTForms ile oluşturduğumuz formda ki verileri veritabanına ekleyeceğiz.

Şimdi veritabanı üzerinde yaptığımız değişiklikleri kaydetmek için commit() metodunu kullanıyoruz.

Şimdi adım adım kodları inceleyelim. İlk önce kullanıcı kayıt formumuzu oluşturalım;

Bu şekilde kullanıcı kayıt formumuzu oluşturmuş olduk. Şimdi formumuzu html sayfasına ekleyelim.

Şimdi form sayfasına istek atacak ve bunun karşılığında bize bir register.html sayfasını döndürecek fonksiyonu yazalım.

Çok güzel formumuzu oluşturduk. Şimdi formdan aldığımız bilgileri veritabanına kaydedecek fonksiyonu yazalım.

Şimdi uygulamamızı çalıştıralım ve /register sayfasına gidelim.

Formumuzu doldurduk ve kayıt butonuna tıkladık. Gördüğünüz gibi projemizde Register.db şeklinde bir veritabanı oluşturmuş olduk. Şimdi veritabanımızı açalım ve inceleyelim.

Gördüğünüz gibi başarılı bir şekilde veritabanına yeni kullanıcı ekledik.

Şimdi veritabanı içindeki bilgileri okuyalım.

Şimdi /new-users sayfasını açalım.

Veritabanı bilgilerini başarılı bir şekilde okuduk.

Mobilhanem.com da bir dersin daha sonuna geldik. Eksik yada yanlış gördüğünüz yerler için yorum bölümünden veya soru – cevap kısmından ulaşabilirsiniz. Bir sonraki yazıda Flask Framework’te MySQL Konfigürasyonu ve Veritabanı işlemleri konusunu ele alacağız. Bir sonraki yazıda görüşmek üzere.

Tüm Flask Derslerine buradan ulaşabilirsiniz.

50

Cahit İşleyen

Data Scientist at @Embedica.ai
Python ve Linux sever.
Çay tiryakisi

3 Yorum

  • Elinize sağlık öğretici bir kaynak olmuş.
    validatorler’de ne hikmetse bir sıkıntı var verdiğimiz custom mesajları inatla göstermiyor fakat browser kendi mesajını gösteriyor. register formuna novalidate yaptığımızda bu sefer hiç bir validation yapmıyor.
    wtform’dan
    class NoRequiredForm(Form):
    class Meta:
    def render_field(self, field, render_kw):
    render_kw.setdefault(‘required’, False)
    return super().render_field(field, render_kw)
    olarak yeni bir form türetiyoruz yine hiç bir mesaj vermiyor.
    İşin özü custom mesaj python flask wtformda validatorler custom mesaj vermiyor.

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?