Tkinter -AttributeError: 'str' object has no attribute 'get' sorunu

class veriislem():
def verikomutekle(self,):
	global komutsahibi1
	global komutadi1
	global komut1
	global komutislevi1

	mydb = mysql.connector.connect(
	host="localhost",
	user="root",
	passwd="1968Hram",
	database="YAPAYZEKA"
	)

	vb = mydb.cursor()
	
	komutsahibi1 = komutsahibi1.get()
	komutadi1 = komutadi1.get()
	komut1 = komut1.get()
	komutislevi1 = komutislevi1.get("1.0", "end-1c")

	try:
		vb.execute("SELECT * FROM KOMUTLAR")
		myresult = vb.fetchall()
		for x in myresult:
			komutid = x[0]
			if komutid == "NONE":
				komutid1 = 0 + 1
				komutid = int(komutid1)
				print("Komut ID Numarası : " + str(komutid))
				print("Komut Sahibi : " + komutsahibi1)
				print("Komut Adı : " + komutadi1)
				print("Komut : " + komut1)
				print("Komut İşlevi : " + komutislevi1)
				sql = """INSERT INTO Laptop (komutid, komutsahibi, komutadi, komut, komutislevi) 
                            VALUES (%d, %s, %s, %s, %s) """

				veri = (str(komutid), komutsahibi1, komutadi1, komut1, komutislevi1)
				vb.execute(sql,veri)
				mydb.commit()
				print("KAYIT BAŞARILI")
			else:
				komutid1 += 1
				komutid = int(komutid1)
				print("Komut ID Numarası : " + str(komutid))
				print("Komut Sahibi : " + komutsahibi1)
				print("Komut Adı : " + komutadi1)
				print("Komut : " + komut1)
				print("Komut İşlevi : " + komutislevi1)
				sql = """INSERT INTO Laptop (komutid, komutsahibi, komutadi, komut, komutislevi) 
                            VALUES (%d, %s, %s, %s, %s) """

				veri = (str(komutid), komutsahibi1, komutadi1, komut1, komutislevi1)
				vb.execute(sql,veri)
				mydb.commit()
				print("KAYIT BAŞARILI")
	except:
		print("KAYIT BAŞARISIZ!")

def verikomutsil():
	print("VERİ KOMUT SİL")
	
def verikomutduzenle():
	print("VERİ KOMUT DÜZENLE")
	
veri = veriislem()

class komutpencereleri():
def komutekle(self,):
	pencere = Tk()

	global komutsahibi1
	komutsahibiyazi = Label(pencere, text="KOMUT SAHİBİ YAZINIZ : ")
	komutsahibiyazi.pack()
	komutsahibi1 = Entry(pencere)
	komutsahibi1.pack()
	
	global komutadi1
	komutadiyazi = Label(pencere, text="KOMUT ADI YAZINIZ : ")
	komutadiyazi.pack()
	komutadi1 = Entry(pencere)
	komutadi1.pack()

	global komut1
	komutyazi = Label(pencere, text="KOMUT YAZINIZ : ")
	komutyazi.pack()
	komut1 = Entry(pencere)
	komut1.pack()
	
	global komutislevi1
	komutisleviyazi = Label(pencere, text="KOMUT İŞLEVİ YAZINIZ : ")
	komutisleviyazi.pack()
	komutislevi1 = Text(pencere)
	komutislevi1.pack()

	button = Button(pencere, text="KOMUTU KAYDET", command=lambda:veri.verikomutekle())
	button.pack()

	pencere.mainloop()
	
def komutsil():
	print("KOMUT SİL")
	
def komutduzenle():
	print("KOMUT DÜZENLE")
	
yanit = raw_input("Ne Yapmak İstiyorsunuz ? : ")

if "komutekle" == yanit:
komutpencereleri().komutekle()
if "komutsil" == yanit:
print("KOMUT SİL")
if "komutdüzenle" == yanit:
print("KOMUT DÜZENLE")

Bu nasıl forum allah aşkına ben bir sorunumu söyledim burada ön yargı yapıp küçük göstermekse niyetiniz önce forumdan başlamalısınız hehehe :smiley:

Kusura bakma ama o kodu okumak için efor harcayacan kişiye nasıl teşekkür etsen az kalır. İlk önce kurallara uy, kodunu düzenle. Sonra yardım iste.

1 Beğeni

Düzenledim Buyrun özür dilerim oldu mu? :rage: :rage: :face_with_symbols_over_mouth:

Kendim size “hoşgeldiniz” deyip bir açıklama yazmak isterdim ama sorunuzun sadece koddan ibaret olduğunu fark edince ben de kolaya kaçtım, zaten atacağım linkleri verdim sadece. Ayrıca size bir aşağılamada da bulunmadık, sizin sorunuz ne kadar açıklayıcı ise benim cevabım da o kadar açıklayıcı diye düşünüyorum. Kodu foruma yanlış attın diye de bir şey demedim, sadece nasıl düzelteceği ile alakalı bir konu gösterdim. Önyargı ve küçük düşürme gibi bir niyetim de yoktu. Attığınız kodda hâla girintileme düzgün değil, biri çalıştırmak istese hata alacaktır.

Şu an kodu çalıştıramıyorum, hatanın yerini de belirtmemişsiniz. Ama sanırım sıkıntı burası:

Burada komutadi1 ve komut1 değişkeni bir str oluyor, ama siz bunları Entry gibi kullanmaya çalışıyorsunuz. Bu yüzden hata alıyorsunuz.

1 Beğeni

efendim şimdi hatanın tam olarak nerede olduğunu bilmiyorum ayrıca str nerede ve nasıl kullanabilirim?

sorunu buldum ama şimdi başka sorun ortaya çıktı anlamadığım konu şu herşey tamken kayıt etmesi gerekirken kayıt başarısız diyor acaba nerede hata yapıyor olabilirim ?

def verikomutekle(self,komutsahibi,komutadi,komut,komutislevi):
	mydb = mysql.connector.connect(
		host="localhost",
		user="root",
		passwd="1968Hram",
		database="YAPAYZEKA"
		)

	vb = mydb.cursor()
	
	try:
		vb.execute("SELECT komutid FROM KOMUTLAR ORDER BY komutid DESC LIMIT 1")
		myresult = vb.fetchall()
		for x in myresult:
			komutid = x[0]
			if komutid == "NULL":
				komutid1 = 0 + 1
				komutid = int(komutid1)
				print("Komut ID Numarası : " + str(komutid))
				print("Komut Sahibi : " + komutsahibi)
				print("Komut Adı : " + komutadi)
				print("Komut : " + komut)
				print("Komut İşlevi : " + komutislevi)
				sql = """INSERT INTO Laptop (komutid, komutsahibi, komutadi, komut, komutislevi) VALUES (%d, %s, %s, %s, %s) """
				veri = (str(komutid), komutsahibi, komutadi, komut, komutislevi)
				vb.execute(sql, veri)
				mydb.commit()
				print("KAYIT BAŞARILI")
			else:
				komutid1 += 1
				komutid = int(komutid1)
				print("Komut ID Numarası : " + str(komutid))
				print("Komut Sahibi : " + komutsahibi)
				print("Komut Adı : " + komutadi)
				print("Komut : " + komut)
				print("Komut İşlevi : " + komutislevi)
				sql = """INSERT INTO Laptop (komutid, komutsahibi, komutadi, komut, komutislevi) VALUES (%d, %s, %s, %s, %s) """
				veri = (str(komutid), komutsahibi, komutadi, komut, komutislevi)
				vb.execute(sql, veri)
				mydb.commit()
				print("KAYIT BAŞARILI")
	except:
		print("KAYIT BAŞARISIZ!")

Neden try except bloğunu silip incelemiyorsunuz, kodun şu anki şeklinde ekrana hata ile alakalı hiç bir bilgi yazılmıyor.