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
Yorum Gönder