Python ile Veritabanı işlemleri




Selamlar ;
Bugünki makalemizde Python ile temel veritabanı işlemlerine göz gezdireceğiz

Bilindiği üzre python sürümlerinde ön tanımlı olarak Sqlite veritabanı gelmekte. Biz de uygulamamızda Sqlite veritabanı üzerinden gideceğiz
Sqlite db , hiç bir sunucuya bağlı kalmadan , hızlı ve taşınabilir dosya sistemi ile birçok uygulamanızda kullanabilirsinz . Taşınabilir olması işletim sistemi  bağımlılığını ortadan kaldırmaktadır.  32 bit , 64 bit mimariler arasında kopyalanıp taşınabilmektedir. Ayrıca bir veritabanında yer alan , tabloların ,sorguların,indekslerin tek bir dosyada tutulması Sqlite'in güçlü yanlarındandır. Sunucu bağımsız çalışması, özellikle mobil uygulamarda tercih edilme sebeplerindendir

uygulamamıza başlayalım

ilk olarak sqlite3 modülünü import edelim

import sqlite3

Python 3.2 sqlite3 'ün 2.6.0 sürümü ile gelmektedir

print(sqlite3.version) komutu çıktısında 2.6.0 görmeniz gerekmektedir.

Bağlantı kurmanız için DB dosya yolunu belirtmek yeterli olacaktır. Eğer belirtilen yolda veritabanı yoksa, uygulama kendisi veritabanı oluşturacaktır.

baglanti=sqlite3.connect("galeri.db")

Halihazırma veritabanımız olmadığı için  galeri isimli veritabanı oluşturduk.
Oluşturulan DB dosyası binary file olup, metin dosyası değildir
Eğer bağlantıyı test etmek isterseniz aşağıdaki örnek kodu kullanabilirsiniz

if(baglanti):
    print("bağlantı başarılı")
else :
    print("bağlantı başarısız")

Veritabanı oluşturulduğunda , işlem yapmamız için işaretçi nesnesinin oluşturmamız gerekir

db_cursor=baglanti.cursor()

şimdi oluşturduğumuz veritabanında Suv isimli bir tablo oluşturalım
Eğer tablo oluşturulmuşsa program halihazırda bu tablo var uyarısı verecektir

db_cursor.execute("""CREATE TABLE Suv(kayit_no INTEGER PRIMARY KEY, Marka VARCHAR(50) NOT NULL, Model VARCHAR(50) NOT NULL )""")

bu tabloda integer tipinde ve otomatik artan kayit_no alanı, Marka ve Model alanları yer almaktadır.


şimdi bir method ile veri tabanına kayıt ekleyelim

def veri_ekle(marka,model):
    try:
        baglanti.cursor()
        baglanti.cursor().execute(" INSERT INTO Suv(Marka,Model) values(?,?)",(marka,model))
        baglanti.commit()
        baglanti.close()
        print("veri eklendi")
    except sqlite3.Error as e :
        print(str(e))

Yukarıdaki kod bloğunu açıklarsak;
işaretçi nesnemizi oluşturduk
sonra insert komutunu execute ettik
commit fonksiyonu ile işlemleri veritabanına kaydedilmesini ve  değişikliklerin diğer bağlantılar tarafından da görülebilir olmasını sağladık.


Yeni tanımlayacağımız method ile de veritabanındaki verileri listeleyelim

def select():
    veriler=baglanti.cursor().execute("SELECT * from Suv")
    print(veriler.fetchall())
    baglanti.commit()
    baglanti.close()


Kaynak kodlara https://github.com/farcompen/HG1P-Project/blob/master/db_example.py adresinden erişebilirsiniz

Bir sonraki makalede temel DB işlemleri devam edeceğiz







Yorumlar