Witajcie mam problem z następującym kodem:
`#-*- coding: UTF-8 -*-
from tkinter import *
from tkinter.messagebox import *
import mysql.connector
from mysql.connector import errorcode
import datetime
#połączenie z bazą danych
cnx = mysql.connector.connect(user='root',
password='1WFqE1aZtfhCLaXu',
host='127.0.0.1',
database='biblioteka')
cursor = db.cursor()
obecnadata= datatime.datetime.now()
odata=obecnadata.strftime(d.m.Y)
def zamknij(event):
root.quit()
root.destroy()
def zamknijlog(event):
logowanie.quit()
def log(event):
global zalogowane
zalogowane = 0
logini=entry_1.get()
password=entry_2.get()
query = ("SELECT login, haslo FROM loggin"
"WHERE logini=login AND password=haslo")
if cursor.execute(query, (logini, password)):
zalogowane = 1
return zalogowane
zamknijlog()
def logowanie():
global win1
try:
win1.state() == "normal": win1.focus()
except:
logowanie = Tk()
label_1=Label(logowanie, text='Login')
label_2 = Label(logowanie, text='Hasło')
entry_1 = Entry(logowanie)
entry_2 = Entry(logowanie)
button = Button(logowanie, text='Zaloguj', command=log)
button.pack()
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
entry_1.grid(row=0, column=1)
entry_2.grid(row=1,column=1)
def zamknijlogging(event):
logging.quit()
logging.destroy()
def ulogging():
query = ("UPDATE logging SET login=%s AND hasło=%s"
"Where login=%s and hasło=%s")
cursor.execute(query, (nlogin, ngaslo),(slogin, shaslo))
def dlogging():
query =("DELETE from logging"
"WHERE login=%s and hsało=%s")
cursor.execute(query, (slogin, shaslo))
def clogging(event):
logging.quit()
def logging():
global win2
try:
win2.state() == "normal": win2.focus()
except:
logging = Tk()
logging.title('Edycja danych logowania')
labe1_1= Label(logging, text='proszę wprowadzić zmiany w swoim koncie')
label_2= Label(logging, text='Login')
label_3= Label(logging, text='hasło')
label_4= Label(logging, text='Nowy login')
label_5=Label(logging, text='Nowe hasło')
entry1=Entry(logging)
entry2=Entry(logging)
entry3=Entry(logging)
entry4=Entry(logging)
button1=Button(logging, text='Zmień dane logowania', command=ulogging)
button2=Button(logging, text='Usuń konto', command=dlogging)
button3=Button(logging, text='Przejdź do edycji danych osobowych', command=uzytkownicy)
button4=Button(logging, text='Powrót do menu', command=clogging)
button5=Button(logging, text='zamknij i wyloguj', command=zamknijlogging)
label_1.grid(row=0, siticky=E)
label_2.grid(row=1, sticky=E)
entry1.grid(row=1, column=1)
label_3.grid(row=2, sticky=E)
entry2.grid(row=2, column=1)
label_4.grid(row=3, sticky=E)
entry3.grid(row=3, column=1)
label_5.grid(row=4, sticky=E)
entry4.grid(row=4, column=1)
button1.grid(row=5, sticky=E)
button2.grid(row=6, sticky=E)
button3.grid(row=7, sticky=E)
button4.grid(row=8, sticky=E)
button5.grid(row=9, sticky=E)
slogin=entry1.get()
shaslo=entry2.get()
nlogin=entry3.get()
nhaslo=entry4.get()
def zamknijautorzy(event):
cnx.commit()
autorzy.quit()
autorzy.destroy()
def cautorzy(event):
autorzy.quit()
def iautorzy():
query=("INSERT INTO autorzy"
"(id_autora, imiona, nazwikso)"
"VALUES (%s, %s, %s)")
cursor.execute(query, (idautora, imiona, nazwisko))
def aautorzy():
query=( "UPDATE autorzy SET imiona=%s AND nazwisko=%s"
"Where id_autora=%s")
cursor.execute(query, (imiona, nazwisko),(id_autora))
def dautorzy():
query=("DELETE from autorzy"
"WHERE id_autora= %s")
cursor.execute(query,(id_autora))
def cautorzy(event):
autorzy.quit()
def autorzy():
global win3
try:
win3.state() == "normal": win3.focus()
except:
autorzy=Tk()
label_1=Label(autorzy, text='id_autora')
label_2=Label(autorzy, text='imiona')
label_3=Label(autorzy, text='nazwisko')
entry1=Entry(autorzy)
entry2=Entry(autorzy)
entry3=Entry(autorzy)
Button1=Button(autorzy, text='Wprowadź nowego autora', command=iautorzy)
Button2=Button(autorzy, text='Zaktualizuj autora',command=aautorzy)
Button3=Button(autorzy, text='Usuń autora',command=dautorzy)
Button4=Button(autorzy, text='Powrót do menu',command=cautorzy)
Button5=Button(autorzy, text='Zamknij i wyjdź',command=zamknijautorzy)
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
label_3.grid(row=2, sticky=E)
entry1.grid(row=0, oolumn=1)
entry2.grid(row=1, oolumn=1)
entry3.grid(row=2, oolumn=1)
Button1.grid(row=3, column=1)
Button2.grid(row=4, column=1)
Button3.grid(row=5, column=1)
Button4.grid(row=6, column=1)
Button5.grid(row=7, column=1)
idautora=entry1.get()
imiona=entry2.get()
nazwisko=entry3.grid()
def zamknijgatunek(event):
gatunek.quit()
gatunek.destroy()
def cgatunek(event):
gatunek.quit()
def igatunek():
query=("INSERT INTO gatunek"
"(id_gatunku, gatunek)"
"VALUES (%s, %s)")
cursor.execute(query, (idgatunku, gatunek))
def agatunek():
query=cursor=( "UPDATE gatunek SET gatunek=%s "
"Where id_gatunku=%s")
cursor.execute(query, (gatunek), (id_gatunku))
def dgatunek():
query=("DELETE from gatunek"
"WHERE id_gatunku=%s")
cursor.execute(query, (idgatunku))
def gatunek():
global win4
try:
win4.state() == "normal": win4.focus()
except:
gatunek=Tk()
label_1=Label(gatunek, text='id_gatunku')
label_2=Label(gatunek, text='gatunek')
entry1=Entry(gatunek)
entry2=Entry(gatunek)
Button1=Button(gatunek, text='Wprowadź nowy gatunek', command=igatunek)
Button2=Button(gatunek, text='Zaktualizuj gatunek', command=agatunek)
Button3=Button(gatunek, text='Usuń gatunek', command=dgatunek)
Button4=Button(gatunek, text='Powrót do menu', command=cgatunek)
Button5=Button(gatunek, text='Zamknij i wyjdź',command=zmknijgatunek)
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
entry1.grid(row=0, oolumn=1)
entry2.grid(row=1, oolumn=1)
Button1.grid(row=2, column=1)
Button2.grid(row=3, column=1)
Button3.grid(row=4, column=1)
Button4.grid(row=5, column=1)
Button5.grid(row=6, column=1)
idgatunku=entry1.get()
gatunek=entry2.get()
def zamknijserie(event):
serie.quit()
serie.destroy()
def zserie():
serie.quit()
def iserie():
query=("INSERT into serie"
"(id_serii, nazwa, liczba_tomów)"
"VALUES(%s, %s, $s")
cursor.excecute(query, (idserie, nazwa, liczbatomow))
def aserie():
query=("UPDATE serie set nazwa=$s and liczbatomow=%s"
"WHERE id_serii=%s")
cursor.execute(query, (nazwa, liczbatomow),(idserie))
def dserie():
query=("DELETE FROM serie"
"WHERE id_serii=%s")
cursor.execute(query, (idserie))
def serie():
global win5
try:
win5.state() == "normal": win5.focus()
except:
serie=Tk()
label_1=Label(serie, text='id_serii')
label_2=Label(serie, text='nazwa')
label_3=Label(serie, text='liczba_tomów')
entry1=Entry(serie)
entry2=Entry(serie)
entry3=Entry(serie)
Button1=Button(serie, text='Wprowadź nową serię', command=iserie)
Button2=Button(serie, text='Zaktualizuj serie', command=aserie)
Button3=Button(serie, text='Usuń serie', command=dserie)
Button4=Button(serie, text='Powrót do menu', command=zserie)
Button5=Button(serie, text='Zamknij i wyjdź', command=zamknijserie)
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
label_3.grid(row=2, sticky=E)
entry1.grid(row=0, oolumn=1)
entry2.grid(row=1, oolumn=1)
entry3.grid(row=2, oolumn=1)
Button1.grid(row=3, column=1)
Button2.grid(row=4, column=1)
Button3.grid(row=5, column=1)
Button4.grid(row=6, column=1)
Button5.grid(row=7, column=1)
idserie=entry1.get()
nazwa=entry2.get()
liczbatomow.get()
def zamknijuzytkownicy(event):
uzytkownicy.quit()
uzytkownicy.destroy()
def iuzytkownicy():
query=('INSERT INTO uzytkownicy'
'(id_użytkownika, Imiona, Nazwisko, PESEL, ulica, nr_domu, nr_mieszkania, miejscowość, telefon)'
'VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s)')
cursor.execute(query,(iduzytkownika,imiona,nazwisko,pesel,iulica,ndomu,nmieszkania,miejscowosc,telefon))
def cuzytkownicy(event):
uzytkownicy.quit()
def uuzytkowniy():
query=('UPDATE uzytkownicy SET Imiona=%s AND Nazwisko=%s AND PESEL=%s AND ulica=%s AND nr_domu=%s AND nr_mieszkania=%s AND miejscowość=%s and telefon=%s'
'WHERE id_użytkownika=%s')
cursor.execute(query,(imiona,nazwisko,pesel,iulica,ndomu,nmieszkania,miejscowosc,telefon),(iduzytkownika))
def duzytkownika():
query=('DELETE FROM uzytkownicy'
'WHERE id_uzytkownika-%s')
cursor.execute(query,(iduzytkownika))
def uzytkownicy():
global win6
try:
win6.state() == "normal": win6.focus()
except:
uzytkownicy=Tk()
label_1=Label(uzytkownicy, text='id_użytkownika')
label_2=Label(uzytkownicy, text='Imiona')
label_3=Label(uzytkownicy, text='Nazwisko')
label_4=Label(uzytkownicy, text='PESEL')
label_5=Label(uzytkownicy, text='ulica')
label_6=Label(uzytkownicy, text='nr_domu')
label_7=Label(uzytkownicy, text='nr_mieszkania')
label_8=Label(uzytkownicy, text='miejscowość')
label_9=Label(uzytkownicy, text='telefon')
entry1=Entry(uzytkownicy)
entry2=Entry(uzytkownicy)
entry3=Entry(uzytkownicy)
entry4=Entry(uzytkownicy)
entry5=Entry(uzytkownicy)
entry6=Entry(uzytkownicy)
entry7=Entry(uzytkownicy)
entry8=Entry(uzytkownicy)
entry9=Entry(uzytkownicy)
Button1=Button(uzytkownicy, text='Wprowadź nowego użytkownika o podanych danych', command=iuzytkownicy)
Button2=Button(uzytkownicy, text='Zaktualizuj użytkownika',command=auzytkownika)
Button3=Button(uzytkownicy, text='Usuń użytkownika',command=duzytkownicy)
Button4=Button(uzytkownicy, text='Powrót do menu', command=cuzytkownicy)
Button5=Button(uzytkownicy, text='Zamknij i wyjdź', command=zamknijuzytkownicy)
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
label_3.grid(row=2, sticky=E)
label_4.grid(row=3, sticky=E)
label_5.grid(row=4, sticky=E)
label_6.grid(row=5, sticky=E)
label_7.grid(row=6, sticky=E)
label_8.grid(row=7, sticky=E)
label_9.grid(row=8, sticky=E)
entry1.grid(row=0, oolumn=1)
entry2.grid(row=1, oolumn=1)
entry3.grid(row=2, oolumn=1)
entry4.grid(row=3, oolumn=1)
entry5.grid(row=4, oolumn=1)
entry6.grid(row=5, oolumn=1)
entry7.grid(row=6, oolumn=1)
entry8.grid(row=7, oolumn=1)
entry9.grid(row=8, oolumn=1)
Button1.grid(row=9, column=1)
Button2.grid(row=10, column=1)
Button3.grid(row=11, column=1)
Button4.grid(row=12, column=1)
Button5.grid(row=13, column=1)
iduzytkownika=entry1.get()
imiona=entry2.get()
nazwisko=entry3.get()
pesel=entry4.get()
iulica=entry5.get()
ndomu=entry6.get()
nmieszkania=entry7.get()
miejscowosc=entry8.get()
telefon=entry9.get()
def iksiazki():
query=('INSERT INTO książki'
'(id_książki, serie_id_serii, gatunki_id_gatunku, autorzy_id_autora, tytuł, rok_wydania, wydawnictwo)'
'VALUES(%s,%s,%s,%s,%s,%s,%s)')
cursor.execute(query,(idksiazki,idserii,idgatunku,idautora,tytulrokwydania,wydawnictwo))
def aksiazki():
query=('UPDATE książki SET serie_id_serii=%s AND gatunki_id_gatunku=%s AND autorzy_id_autora=%s AND tytuł=%s AND rok_wydania=%s AND wydawnictwo=%s'
'WHERE id_książki=%s')
cursor.execute(query,(idserii,idgatunku,idautora,tytulrokwydania,wydawnictwo),(idksiazki))
def zamknijksiazki(event):
ksiazki.quit()
ksiazki.destroy()
def cksiazki(event):
ksiazki.quit()
def dksiazki():
query=('DELETE FROM książki'
'WHERE id_książki=%s')
cursor.execute(query,(idksiazki))
def ksiazki():
global win7
try :
win7.state()== "normal":wni7.focus()
except:
ksiazki=Tk()
label_1=Label(ksiazki, text='id_książki')
label_2=Label(ksiazki, text='id_serii')
label_3=Label(ksiazki, text='idgatunku')
label_4=Label(ksiazki, text='id_Autora')
label_5=Label(ksiazki, text='Tytuł')
label_6=Label(ksiazki, text='rok_wydania')
label_7=Label(ksiazki, text='nWydawnictwo')
entry1=Entry(ksiazki)
entry2=Entry(ksiazki)
entry3=Entry(ksiazki)
entry4=Entry(ksiazki)
entry5=Entry(ksiazki)
entry6=Entry(ksiazki)
entry7=Entry(ksiazki)
Button1=Button(ksiazki, text='Wprowadź ksiażkę o podanych danych', command=iksiazki)
Button2=Button(ksiazki, text='Zaktualizuj książkę',command=aksiazki)
Button3=Button(ksiazki, text='Usuń pozycje',command=duksiazki)
Button4=Button(ksiazki, text='Powrót do menu', command=cksiazki)
Button5=Button(ksiazki, text='Zamknij i wyjdź', command=zamknijksiazki)
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
label_3.grid(row=2, sticky=E)
label_4.grid(row=3, sticky=E)
label_5.grid(row=4, sticky=E)
label_6.grid(row=5, sticky=E)
label_7.grid(row=6, sticky=E)
entry1.grid(row=0, oolumn=1)
entry2.grid(row=1, oolumn=1)
entry3.grid(row=2, oolumn=1)
entry4.grid(row=3, oolumn=1)
entry5.grid(row=4, oolumn=1)
entry6.grid(row=5, oolumn=1)
entry7.grid(row=6, oolumn=1)
Button1.grid(row=7, column=1)
Button2.grid(row=8, column=1)
Button3.grid(row=9, column=1)
Button4.grid(row=10, column=1)
Button5.grid(row=11, column=1)
idksiazki=entry1.get()
idserii=entry2.get()
idgatunku=entry3.get()
idautora=entry4.get()
tytul=entry5.get()
rokwydanian=entry6.get()
wydawnictwo=entry7.get()
def iwypozyczenia():
query=('INSERT INTO Użytkownicy'
'(id_wypożyczenia, ksiązki_id_książki, Użytkownicy_id_użytkownika, tytuł, rok_wydania, wydawnictwo)'
'VALUES(%s,%s,%s,%s,%s,%s,%s)')
cursor.execute(query,(idksiazki,idserii,idgatunku,idautora,tytulrokwydania,wydawnictwo))
def aksiazki():
query=('UPDATE książki SET serie_id_serii=%s AND gatunki_id_gatunku=%s AND autorzy_id_autora=%s AND tytuł=%s AND rok_wydania=%s AND wydawnictwo=%s'
'WHERE id_książki=%s')
cursor.execute(query,(idserii,idgatunku,idautora,tytulrokwydania,wydawnictwo),(idksiazki))
def zamknijwypozyczenia(event):
wypozyczenia.quit()
wypozyczenia.destroy()
def cwypozyczenia(event):
wypozyczenia.quit()
def dwypozyczenia ():
query=('DELETE FROM książki'
'WHERE id_książki=%s')
cursor.execute(query,(idksiazki))
def wypozyczenia():
global win8
try :
win8.state()== "normal":wni8.focus()
except:
ksiazki=Tk()
label_1=Label(wypozyczenia, text='id_wypożyczenia')
label_2=Label(wypozyczenia, text='id_autora')
label_3=Label(wypozyczenia, text='id_gatunku')
label_4=Label(wypozyczenia, text='id_serii')
label_5=Label(wypozyczenia, text='id_książki')
label_6=Label(wypozyczenia, text='id_użytkownika')
label_7=Label(wypozyczenia, text='data_wypożyczenia')
label_8=Label(wypozyczenia, text='data_oddania')
entry1=Entry(wypozyczenia)
entry2=Entry(wypozyczenia)
entry3=Entry(wypozyczenia)
entry4=Entry(wypozyczenia)
entry5=Entry(wypozyczenia)
entry6=Entry(wypozyczenia)
entry7=Entry(wypozyczenia)
Button1=Button(wypozyczenia, text='Wprowadź ksiażkę o podanych danych', command=iksiazki)
Button2=Button(wypozyczenia, text='Zaktualizuj książkę',command=aksiazki)
Button3=Button(wypozyczenia, text='Usuń pozycje',command=duksiazki)
Button4=Button(wypozyczenia, text='Powrót do menu', command=cksiazki)
Button5=Button(wypozyczenia, text='Zamknij i wyjdź', command=zamknijksiazki)
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
label_3.grid(row=2, sticky=E)
label_4.grid(row=3, sticky=E)
label_5.grid(row=4, sticky=E)
label_6.grid(row=5, sticky=E)
label_7.grid(row=6, sticky=E)
entry1.grid(row=0, oolumn=1)
entry2.grid(row=1, oolumn=1)
entry3.grid(row=2, oolumn=1)
entry4.grid(row=3, oolumn=1)
entry5.grid(row=4, oolumn=1)
entry6.grid(row=5, oolumn=1)
entry7.grid(row=6, oolumn=1)
Button1.grid(row=7, column=1)
Button2.grid(row=8, column=1)
Button3.grid(row=9, column=1)
Button4.grid(row=10, column=1)
Button5.grid(row=11, column=1)
idksiazki=entry1.get()
idserii=entry2.get()
idgatunku=entry3.get()
idautora=entry4.get()
tytul=entry5.get()
rokwydanian=entry6.get()
wydawnictwo=entry7.get()
def raport():
query=('COUNT id_wypożyczenia Where data_wyp=%s')
lw=cursor.execute(query, (odata))
raportm=open('raport_miesięczny.txt','a')
raportm.write("W tym miesiącu wypożyczeń było:" %lw)
def przetksiazki():
wd=odate-30
query=('SELECT id_użytkownika from wypożyczenia where data_odd=NULL and data_wyp=%s')
pk=cursor.execute(query,(wd))
raportp=open('przetrzymane.txt','a')
raportm.write("W tym miesiącu przetrzymali:" %pk)
root=Tk()
root.title('Panel Pracownika')
root.geometry('1200x300')
app=Frame(root)
app.grid()
label_1=Label(root, text='Proszę wybrać opcje', width=30)
label_2=Label(root, text='Panel obsługi konta własnego', width=30)
label_3=Label(root, text='Obługa wypożyczeń i konta', width=30)
label_4=Label(root, text='Panel obsługi księgozbioru', width=30)
label_5=Label(root, text='Generowanie raportów', width=30)
button1=Button(root, text='Zmień dane logowania',command=logging, width=30)
button2=Button(root, text='Użytkownik',command=uzytkownik, width=30)
button3=Button(root, text='Wypożyczenia',command=wypozyczenia, width=30)
button4=Button(root, text='Księgozbiór',command=ksiazki, width=30)
button5=Button(root, text='Serie',command=serie, width=30)
button6=Button(root, text='Gatunek',command=gatunek, width=30)
button7=Button(root, text='Wygeneruj osoby przetrzymujące książki ',command=przetksiazki, width=30)
button8=Button(root, text='Wygeneruj raport miesięczny',command=raport, width=30)
button9=Button(root, text='Zaloguj',command=logowanie, width=30)
button10=Button(root, text='Zamknij',command=zamknij, width=30)
button11=Button(root, text='Autorzy',command=autorzy, width=30)
label_1.grid(row=0,column=1)
label_2.grid(row=1,sticky=E)
button1.grid(row=1,column=1)
label_3.grid(row=2,sticky=E)
button2.grid(row=2,column=1)
button3.grid(row=2,column=2)
button6.grid(row=4,column=3)
label_4.grid(row=4,sticky=E)
button4.grid(row=4, column=1)
button5.grid(row=4, column=2)
label_5.grid(row=5,sticky=E)
button7.grid(row=5, column=1)
button8.grid(row=5, column=2)
button9.grid(row=6, sticky=E)
button10.grid(row=6, column=1)
button11.grid(row=4, column=4)
cnx.commit()
cnx.close()
root.mainloop()
Wywala się kod przy win1.state() == "normal": win1.focus()
błąd: Illegal target for annotation