Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- import mysql.connector
- class ConnectAndCommit:
- def __init__(self, query):
- self.query = query
- self.connection = None # The reason for this is to get rid of an annoying PEP8 warning
- self.cursor = None # The reason for this is to get rid of an annoying PEP8 warning
- def est_connection(self):
- self.connection = mysql.connector.connect(
- user='helgiste_test',
- password='ab123',
- host='108.167.160.53',
- database='helgiste_boxes'
- )
- def execute_n_commit(self):
- self.cursor = self.connection.cursor(buffered=True)
- result = self.cursor.execute(self.query)
- self.connection.commit()
- return result
- def close_connection(self):
- self.cursor.close()
- self.connection.close()
- class Data:
- def __init__(self, bwindow):
- self.bWindow = bwindow
- self.errText = None
- def get_box_data(self, box_nr, do_with_box, desc):
- query = ("INSERT INTO boxes"
- "(BoxNr, DoWithBox, Description) "
- "VALUES ('" + box_nr + "', '" + do_with_box + "', '" + desc + "')")
- cac = ConnectAndCommit(query)
- cac.est_connection()
- try:
- cac.execute_n_commit()
- cac.close_connection()
- return "success"
- except mysql.connector.Error as err:
- print("Something went wrong: {}".format(err))
- if err.errno == 1062:
- self.errText = "BoxNr tekið"
- else:
- self.errText = err
- self.errLabel()
- cac.close_connection()
- return "error"
- def return_data(self):
- query = ("SELECT * FROM boxes")
- cac = ConnectAndCommit(query)
- cac.est_connection()
- cac.execute_n_commit()
- BNs = []
- DWB = []
- Desc = []
- label = {}
- for (BoxNr, DoWithBox, Description) in cac.cursor:
- BNs.append(BoxNr)
- DWB.append(DoWithBox)
- Desc.append(Description)
- col = 0
- if len(BNs) == 0:
- empty = Label(self.bWindow, text="[Engin box fundin]")
- empty.grid(row=6, column=1)
- label1 = Label(self.bWindow, text="[BoxNr]")
- label2 = Label(self.bWindow, text="[Gera við box]")
- label3 = Label(self.bWindow, text="[Lýsing]")
- label1.grid(row=5, column=0)
- label2.grid(row=5, column=1)
- label3.grid(row=5, column=2)
- for list in [BNs, DWB, Desc]:
- cnt = 6
- for id in list:
- lb = Label(self.bWindow, text=id)
- lb.grid(row=cnt, column=col)
- label[id] = lb
- cnt += 1
- col += 1
- cac.close_connection()
- def errLabel(self, errText=None):
- if errText == None:
- errLabel = Label(self.bWindow, text=self.errText)
- else:
- errLabel = Label(self.bWindow, text=errText)
- errLabel.grid(row=3, column=1)
- def succLabel(self):
- succLabel = Label(self.bWindow, text="Tókst")
- succLabel.grid(row=3, column=1)
- class Myclass:
- def __init__(self, master, entry1, entry2, entry3):
- frame = Frame(master)
- self.frame = frame
- self.master = master
- frame.grid()
- self.entry1 = entry1
- self.entry2 = entry2
- self.entry3 = entry3
- self.submitButton = Button(frame, text="Senda", command=self.submit)
- self.submitButton.grid(row=3)
- self.tableButton = Button(frame, text="Tafla", command=self.table)
- self.tableButton.grid(row=3, column=1)
- def refresh(self, succ):
- self.master.destroy()
- create(succ)
- def submit(self):
- boxNr = self.entry1.get()
- doWithBox = self.entry2.get()
- desc = self.entry3.get("1.0", "end-1c")
- if boxNr == "":
- Data(self.master).errLabel(errText="BoxNr Tómt")
- elif desc == "":
- Data(self.master).errLabel(errText="Lýsing Tóm")
- else:
- data = Data(self.master)
- e = data.get_box_data(boxNr, doWithBox, desc)
- if e == "success":
- self.refresh(succ=True)
- elif e != "error":
- self.refresh(succ=False)
- def table(self):
- data = Data(self.master)
- data.return_data()
- def create(succ=False):
- bWindow = Tk() # Makes a blank window
- bWindow.title("Box manager")
- boxLabel = Label(bWindow, text="BoxNr(Max 4)")
- dwbLabel = Label(bWindow, text="Gera við kassa")
- descLabel = Label(bWindow, text="Lýsing")
- boxEntry = Entry(bWindow, width=20) # Input Field
- dwbEntry = Entry(bWindow, width=20)
- descEntry = Text(bWindow, height=5, width=20)
- if succ == True:
- Data(bWindow).succLabel()
- boxLabel.grid(row=0, sticky=E) # Sticky controls the alignment (North, East, South, West)
- dwbLabel.grid(row=1, sticky=E)
- descLabel.grid(row=2, sticky=E)
- boxEntry.grid(row=0, column=1)
- dwbEntry.grid(row=1, column=1)
- descEntry.grid(row=2, column=1)
- Myclass(bWindow, boxEntry, dwbEntry, descEntry)
- bWindow.mainloop() # Makes sure the window doesn't close instantly
- create()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement