sqlite3 ile bir kütüphane veritabanı yazmmaya çalışıyorum ama her seferinde şu hatayı alıyorum pycharm ise bazı parametrelerin verilmediğini söylüyor ne yapmam lazım?
kodlarım
bu kod classlar ve fonksiyonların olduğu dosyadan
import sqlite3
import time
class Kitap():
def __init__(self,isim,yazar,yayınevi,tür,baskı):
self.isim = isim
self.yazar = yazar
self.yayınevi = yayınevi
self.tür = tür
self.baskı = baskı
def __str__(self):
return "Kitabın Adı: {}\nKitabın Yazarı: {}\nYayınevi: {}\nKitabın Türü: {}\nKaçıncı Baskısı: {}".format(self.isim,self.yazar,self.yayınevi,self.tür,self.baskı)
class Kütüphane():
def __init__(self):
self.baglanti_olustur()
def baglanti_olustur(self):
self.baglanti = sqlite3.connect("KütüphaneDatabase.db")
self.cursor = self.baglanti.cursor()
sorgu = "CREATE TABLE IF NOT EXITS Kitaplık (isim TEXT,yazar TEXT,yayınevi TEXT,tür TEXT,baskı INT"
self.cursor.execute(sorgu)
self.baglanti.commit()
def baglanti_sonlandir(self):
self.baglanti.close()
def kitaplari_goster(self):
sorgu = "SELECT * FROM Kitaplık"
self.cursor.execute(sorgu)
kitaplar = self.cursor.fetchall()
if len(kitaplar) == 0:
print("Kitaplıkta Kitap Bulunmuyor.")
else:
for i in kitaplar:
kitap = Kitap(i[0],i[1],i[2],i[3],i[4])
print(kitap)
def kitap_ekle(self,kitap):
sorgu = "INSERT INTO Kitaplık Values(?,?,?,?,?)"
self.cursor.execute(sorgu,(kitap.isim,kitap.yazar,kitap.yayınevi,kitap.tür,kitap.baskı))
self.baglanti.commit()
def kitap_sorgula(self,isim):
sorgu = "Select * From Kitaplık Where isim = ?"
self.cursor.execute(sorgu,(isim))
kitaplar = self.cursor.fetchall()
if len(kitaplar) == 0:
print("Hiçbir Kitap Kayıtlı Değil")
else:
kitap = Kitap(kitaplar[0][0],kitaplar[0][1],kitaplar[0][2],kitaplar[0][3],kitaplar[0][4])
print(kitap)
def kitap_sil(self,isim):
sorgu = "Delete From Kitaplık Where isim = ?"
self.cursor.execute(sorgu,(isim,))
self.baglanti.commit()
def baski_yukselt(self,isim):
sorgu = "Select from Kitaplık Where isim = ?"
self.cursor.execute(sorgu,(isim,))
kitaplar = self.cursor.fetchall()
if len(kitaplar) == 0:
print("Böyle bir kitaplık bulunmuyor")
else:
for i in kitaplar:
baskı = i[0][4]
baskı += 1
sorgu2 = "Update Kitaplar set baskı = ? where isim = ?"
self.cursor.execute(sorgu2,(baskı,isim,))
self.baglanti.commit()
bu kod ise kullanıcı girdilerinin alındığı ve fonkisyonların kullanıldığı dosyadan
from Kütüphane import *
print("""*************************************
Kütüphane Programına Hoşgeldiniz.
İşlemler;
1. Kitapları Göster
2. Kitap Sorgulama
3. Kitap Ekle
4. Kitap Sil
5. Baskı Yükselt
Çıkmak için 'q' ya basın.
*********************************""")
while True:
islem = input("Hangi İşlemi Yapmak İstersiniz? :")
if islem == "1":
Kütüphane.kitaplari_goster()
elif islem == "2":
isim = input("Hangi Kitabı İstiyorsunuz?:")
print("Kitap Sorgulanıyor.")
time.sleep(2)
Kütüphane.kitap_sorgula(isim)
elif islem == "3":
isim = input("İsim:")
yazar = input("Yazar:")
yayınevi = input("Yayınevi:")
tür = input("Tür:")
baskı = int(input("Baskı"))
yeni_kitap = Kitap(isim,yazar,yayınevi,tür,baskı)
print("Kitap Ekleniyor.")
time.sleep(2)
Kütüphane.kitap_ekle(yeni_kitap)
elif islem == "4":
isim = input("Hangi Kitabı Silmek İstiyorsunuz?")
dogrulama = input("Emin Misiniz ? E/H")
if dogrulama == "E":
print("Kitap Siliniyor.")
time.sleep(2)
Kütüphane.kitap_sil(isim)
print("Kitap Silindi.")
elif dogrulama == "H":
print("Program Sonlandırılıyor.")
break
elif islem == "5":
isim = input("Hangi Kitabın Baskısını Yükseltmek İstiyorsunuz?")
print("Baskı Yükseltiliyor.")
time.sleep(2)
Kütüphane.baski_yukselt(isim)
print("Baskı Yükseltildi")
elif islem == "q":
print("Program Kapatılıyor.")
break
else:
print("Geçersiz işlem.")
edit: ikinci dosyada Kütüphane = Kütüphane() yapmaşım ve ilk dosya da table oluşturma sorgusunda hata yapmışım