Application Development using ORM Architecture in Python Part – 2

Master Python with 70+ Hands-on Projects and Get Job-ready - Learn Python

Program 1

import MySQLdb
class MyConnection:
    @staticmethod
    def getConnection():
        con=MySQLdb.Connect(host="localhost",user="root",password="root",database="dataflair")
        return con

Program 2

import tkinter.messagebox
import tkinter.simpledialog
from tkinter import *
import tkinter.messagebox
import model
import employeedao as empd
import model
def buttonClick(value):
    if(value=='save'):
      ed=empd.EmployeeDAO()
      E=model.Employee()
      E.setid(empid.get())
      E.setname(empname.get())
      E.setdept(empdept.get())
      E.setsalary(empsal.get())
      choice = tkinter.messagebox.askyesno("save window", "Are you Sure want to save")
      if (choice == True):
        ed.insertEmployee(E)
        tkinter.messagebox.showinfo("Save","Record Save Successfully")

    elif(value=='search'):
        empno=tkinter.simpledialog.askinteger("Search","Enter Employee Id:")
        ed=empd.EmployeeDAO()
        E=ed.searchEmployee(empno)
        if(E!=None):
            empid.set(E.getid())
            empname.set(E.getname())
            empdept.set(E.getdept())
            empsal.set(E.getsalary())
        else:
            tkinter.messagebox.showerror("No Record","No Record Found....")
       # tkinter.messagebox.showinfo("Result","Id ={},Name={},Department={},Salary={}".format(E.getid(),E.getname(),E.getdept(),E.getsalary()))

    elif (value=='update'):
        empno = tkinter.simpledialog.askinteger("Search", "Enter Employee Id for Update:")
        ed = empd.EmployeeDAO()
        E = ed.searchEmployee(empno)
        if (E != None):
            empid.set(E.getid())
            empname.set(E.getname())
            empdept.set(E.getdept())
            empsal.set(E.getsalary())

        else:
            tkinter.messagebox.showerror("No Record", "No Record Found....")


    elif (value=='delete'):
        empno = tkinter.simpledialog.askinteger("Delete", "Enter Employee Id:")
        ed = empd.EmployeeDAO()
        E = ed.searchEmployee(empno)
        if (E != None):
            empid.set(E.getid())
            empname.set(E.getname())
            empdept.set(E.getdept())
            empsal.set(E.getsalary())

            choice = tkinter.messagebox.askokcancel("delete window", "Are you Sure want to delete")
            if(choice == True):
                ed.deleteEmployee(empno)
                tkinter.messagebox.showinfo("delete", "Record Deleted...")
                empid.set("")
                empname.set("")
                empdept.set("")
                empsal.set("")

        else:
            tkinter.messagebox.showerror("No Record", "No Record Found....")

    elif(value=='searchall'):
        print("Search All Record")
        ed=empd.EmployeeDAO()
        mylist=ed.searchAll()

        for i in range(30):
            emp=mylist[i]
            mylist1=[(emp.getid(),emp.getname(),emp.getdept(),emp.getsalary())]
            for j in range(4):
                e = Entry(myroot, width=20, fg='blue', font=('Arial', 15, 'bold'))
                e.grid(row=i, column=j)
                e.insert(END,mylist1[i][j])

    elif (value=='exit'):
       choice=tkinter.messagebox.askokcancel("exit window","Are you Sure want to exit")
       if(choice==True):
         myroot.destroy()




myroot=Tk()
myroot.geometry('900x900')
myroot.maxsize(900,900)
myroot.minsize(900,900)
myroot.title("Employee Registration Form")
myroot.wm_iconbitmap('2.ico')
lb1=Label(text="Enter Employee Id:",font=('Arial,10.bold'),fg="red")
lb1.grid(row=0,column=1)
empid=IntVar()
txtid=Entry(textvariable=empid,font=('Arial,10.bold'),fg="blue")
txtid.grid(row=0,column=2)
lb1=Label(text="Enter Name:",font=('Arial,10.bold'),fg="red")
lb1.grid(row=1,column=1)
empname=StringVar()
txtname=Entry(textvariable=empname,font=('Arial,10.bold'),fg="blue")
txtname.grid(row=1,column=2)
lb3=Label(text="Enter Department:",font=('Arial,10.bold'),fg="red")
lb3.grid(row=2,column=1)
empdept=StringVar()
txtdept=Entry(textvariable=empdept,font=('Arial,10.bold'),fg="blue")
txtdept.grid(row=2,column=2)
lb4=Label(text="Enter Salary:",font=('Arial,10.bold'),fg="red")
lb4.grid(row=3,column=1)
empsal=IntVar()
txtsal=Entry(textvariable=empsal,font=('Arial,10.bold'),fg="blue")
txtsal.grid(row=3,column=2)
#txtsal.bind('<Return>',saveData)
btnsave=Button(text='Save',font=('Verdana,10.bold'),fg="black",command=lambda :buttonClick('save'))
btnsave.grid(row=5,column=0)
btnsearch=Button(text='Search',font=('Verdana,10.bold'),fg="black",command=lambda :buttonClick('search'))
btnsearch.grid(row=5,column=1)
btndelete=Button(text='Delete',font=('Verdana,10.bold'),fg="black",command=lambda :buttonClick('delete'))
btndelete.grid(row=5,column=2)
btnupdate=Button(text='Update',font=('Verdana,10.bold'),fg="black",command=lambda :buttonClick('update'))
btnupdate.grid(row=5,column=3)
btnsearchall=Button(text='Search All',font=('Verdana,10.bold'),fg="black",command=lambda :buttonClick('searchall'))
btnsearchall.grid(row=5,column=4)

btnexit=Button(text='Exit',font=('Verdana,10.bold'),fg="black",command=lambda :buttonClick('exit'))
btnexit.grid(row=5,column=5)




myroot.mainloop()

 

If you are Happy with DataFlair, do not forget to make us happy with your positive feedback on Google

courses

TechVidvan Team

TechVidvan Team provides high-quality content & courses on AI, ML, Data Science, Data Engineering, Data Analytics, programming, Python, DSA, Android, Flutter, full stack web dev, MERN, and many latest technology.

Leave a Reply

Your email address will not be published. Required fields are marked *