Project 1 - English Dictionary App & Library Book Management System
from tkinter import *
import sqlite3
import tkinter.ttk as ttk
import tkinter.messagebox as tkMessageBox
root = Tk()
root.title('Library management application')
def Database():
global conn,cursor
conn = sqlite3.connect('libraray management.db')
cursor =conn.cursor()
cursor.execute(" CREATE A TABLE IF NOT EXISTS member(mem_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,booktitle TEXT,author TEXT,year TEXT,isbn TEXT)")
def Create():
if BOOKTITLE.get() == "" or AUTHOR.get() == "" or YEAR.get() == "" or ISBN.get() == "":
txt_result_config(text ="Please enter allthe fields",fd="red")
else:
Database()
cursor.execute("INSERT INTO member(booktitle,author,year,isbn) VALUES(?,?,?,?,)",str(BOOKTITLE.get()),str(AUTHOR.get()),str(YEAR.get()),str(ISBN.get()))
conn.commit()
BOOKTITLE.set("")
AUTHOR.set("")
YEAR.set("")
ISBN.set("")
cursor.close()
conn.close()
txt_result.config(text="Record inserted !",fg="green")
def Read():
tree.delete(*tree.get_children)
Database()
cursor.execute("SELECT * FROM member ORDER BY author ASC")
fetch = cursor.fetchall()
for data in fetch:
tree.insert('','end',values=(data[1],data[2],data[3],data[4],data[5]))
cursor.close()
txt_result.config(text="Successfully fetched data !",fg="black")
def Exit():
result = tkMessageBox.askquestion("Do you want to exit ? (y/n)", icon = "Warning")
if result == yes:
root.destroy()
exit()
#Variable decalration
BOOKTITLE = StringVar()
AUTHOR = StringVar()
YEAR = StringVar()
ISBN = StringVar()
#Frame
Top = Frame(root, width=900,height=50,bd=8,relief='raise')
Top.pack(side=TOP)
Left = Frame(root, width=300,height=500,bd=8,relief='raise')
Left.pack(side=LEFT)
Right = Frame(root, width=600,height=500,bd=8,relief='raise')
Right.pack(side=RIGHT)
Forms = Frame(Left, width=300,height=450)
Forms.pack(side=TOP)
Buttons = Frame(Left,width=300,height=100,bd=8,relief='raise')
Buttons.pack(side=BOTTOM)
#Lables
txt_title=Label(Top, width=900,text='Library Management Application')
#===========================LABEL WIDGET============================================================
txt_title = Label(Top, width=900, font=('arial', 24), text = "Python: Library Management Application")
txt_title.pack()
txt_booktitle = Label(Forms, text="Booktitle:", font=('arial', 16), bd=15)
txt_booktitle.grid(row=0, stick="e")
txt_author = Label(Forms, text="Author:", font=('arial', 16), bd=15)
txt_author.grid(row=1, stick="e")
txt_year = Label(Forms, text="Year:", font=('arial', 16), bd=15)
txt_year.grid(row=2, stick="e")
txt_isbn = Label(Forms, text="ISBN:", font=('arial', 16), bd=15)
txt_isbn.grid(row=0, stick="e")
txt_result = Label(Buttons)
txt_result.pack(side=TOP)
#============================ENTRY WIDGET==========================================================
booktitle = Entry(Forms, textvariable=BOOKTITLE, width=30)
booktitle.grid(row=0, column=1)
author = Entry(Forms, textvariable=AUTHOR, width=30)
author.grid(row=1, column=1)
year = Entry(Forms, textvariable=YEAR, width=30)
year.grid(row=2, column=1)
isbn = Entry(Forms, textvariable=ISBN, width=30)
isbn.grid(row=3, column=1)
#===========================BUTTONS WIDGET==========================================================
btn_create = Button(Buttons, width=10, text="Create", command=Create)
btn_create.pack(side=LEFT)
btn_read = Button(Buttons, width=10, text="Read", command=Read)
btn_read.pack(side=LEFT)
btn_update = Button(Buttons, width=10, text="Update", state=DISABLED)
btn_update.pack(side=LEFT)
btn_delete = Button(Buttons, width=10, text="Delete", state=DISABLED)
btn_delete.pack(side=LEFT)
btn_exit = Button(Buttons, width=10, text="Exit", command=Exit)
btn_exit.pack(side=LEFT)
#==========================LIST WIDGET======================================================
scrollbary = Scrollbar(Right, orient=VERTICAL)
scrollbarx = Scrollbar(Right, orient=HORIZONTAL)
tree = ttk.Treeview(Right, columns=("booktitle", "author", "year", "isbn"))
scrollbary.config(command=tree.yview)
scrollbary.pack(side=RIGHT, fill=Y)
scrollbarx.config(command=tree.xview)
scrollbarx.pack(side=BOTTOM, fill=X)
tree.heading('booktitle', text="booktitle", anchor=W)
tree.heading('author', text="author", anchor=W)
tree.heading('year', text="year", anchor=W)
tree.heading('isbn', text="isbn", anchor=W)
tree.column('#0', stretch=NO, minwidth=0, width=0)
tree.column('#1', stretch=NO, minwidth=0, width=120)
tree.column('#2', stretch=NO, minwidth=0, width=150)
tree.column('#3', stretch=NO, minwidth=0, width=120)
tree.pack()
#===============================INITIALIZATION===================================================
if __name__ == '__main__':
root.mainloop()