Python Program on GUI Applications with PDBC

Python course with 57 real-time projects - Learn Python

In the realm of practical Python applications, we turn our focus to the development of Graphical User Interface (GUI) applications integrated with Python Database Connection. This endeavor presents an exciting opportunity for developers to create visually appealing and interactive interfaces that seamlessly interact with databases.

By combining the power of GUIs with database connectivity, developers can design intuitive applications that streamline data management tasks and enhance user experience.

Topic Explanation:

In this exploration, we embark on a journey to understand the fusion of GUI applications with Python Database Connection. Firstly, we delve into the fundamentals of GUI development using popular libraries such as Tkinter or PyQt. With a solid understanding of GUI principles, we then integrate database connectivity into our applications using Python Database Connection (PDBC).

Navigating through the code, we illustrate how to design GUI elements such as buttons, input fields, and labels to interact with the database, enabling tasks such as data retrieval, insertion, and deletion directly from the GUI.

Furthermore, we explore how to design intuitive user interfaces that facilitate seamless interaction with database operations. This includes incorporating features such as input validation, error handling, and feedback mechanisms to ensure robustness and user-friendliness.

By leveraging the capabilities of GUI frameworks alongside database connectivity, developers can create powerful applications with rich graphical interfaces that simplify complex data manipulation tasks for end-users.

Prerequisites:

  • Basic knowledge of Python programming language.
  • Understanding of database concepts and SQL queries.
  • Familiarity with GUI development using libraries like Tkinter or PyQt.

Code With Explanation:

from tkinter import *  
# Importing everything from the tkinter module

import MySQLdb
  # Importing the MySQLdb module for MySQL database connectivity

def saveData(event): 
 # Defining a function to save data into the database
    con=MySQLdb.Connect(host="localhost",user="root",password="root",database="dataflair") 
 # Connecting to the MySQL database

    sql="insert into employee values('%d','%s','%s','%d')"  
# SQL query to insert data into the 'employee' table

    cur=con.cursor()
 # Creating a cursor object to execute SQL queries

    value=(int(txtid.get()),txtname.get(),txtdept.get(),int(txtsal.get())) 
 # Getting input values from Entry widgets

    cur.execute(sql % value) 
 # Executing the SQL query with input values
    con.commit() 
 # Committing the changes to the database

    print("record inserted: ",cur.rowcount)  
# Printing the number of records inserted

    con.close()
 # Closing the database connection

    print("Connection close")  
# Printing a message indicating the connection is closed

    txtname.insert(0,"Hi Friend")
  # Inserting a default value into the 'txtname' Entry widget

myroot=Tk() 
 # Creating a Tkinter root window

myroot.geometry('600x600') 
 # Setting the size of the root window

myroot.maxsize(600,600) 
 # Setting the maximum size of the root window

myroot.minsize(600,600) 
 # Setting the minimum size of the root window

myroot.title("Employee Registration Form")
  # Setting the title of the root window

myroot.wm_iconbitmap('2.ico') 
 # Setting the icon for the root window

lb1=Label(text="Enter Employee Id:",font=('Arial,10.bold'),fg="red")  
# Creating a label widget for Employee Id

lb1.grid(row=0,column=0) 
 # Placing the label widget in the root window using the grid layout manager

empid=IntVar()  # Creating an IntVar to store the Employee Id

txtid=Entry(textvariable=empid,font=('Arial,10.bold'),fg="blue") 
 # Creating an Entry widget for Employee Id

txtid.grid(row=0,column=1) 
 # Placing the Entry widget in the root window using the grid layout manager

# Creating similar Label and Entry widgets for Employee Name, Department, and Salary
lb2=Label(text="Enter Name:",font=('Arial,10.bold'),fg="red")
lb2.grid(row=1,column=0)
empname=StringVar()
txtname=Entry(textvariable=empname,font=('Arial,10.bold'),fg="blue")
txtname.grid(row=1,column=1)

lb3=Label(text="Enter Department:",font=('Arial,10.bold'),fg="red")
lb3.grid(row=3,column=0)
empdept=StringVar()
txtdept=Entry(textvariable=empdept,font=('Arial,10.bold'),fg="blue")
txtdept.grid(row=3,column=1)

lb4=Label(text="Enter Salary:",font=('Arial,10.bold'),fg="red")
lb4.grid(row=4,column=0)
empsal=IntVar()
txtsal=Entry(textvariable=empsal,font=('Arial,10.bold'),fg="blue")
txtsal.grid(row=4,column=1)

txtsal.bind('<Return>',saveData)  # Binding the 'Return' key to the saveData function

btnsave=Button(text='Save',font=('Verdana,10.bold'),fg="black",command=lambda :saveData(0)) 
 # Creating a button widget to save data



btnsave.grid(row=5,column=1)  
# Placing the button widget in the root window using the grid layout manager

myroot.mainloop() 
 # Running the Tkinter event loop

Output:

Since the provided code interacts with a MySQL database and relies on specific database configurations and table structures,However, when you run this code on your system after ensuring that you have a MySQL database set up with appropriate credentials and a table named “employee”, it will display a graphical user interface (GUI) window containing an employee registration form. You can then enter employee details such as ID, name, department, and salary into the respective fields and click the “Save” button to insert the data into the database. Any errors or success messages related to database operations will be printed in the console.

Code Explanation:

  • The code imports the necessary modules for GUI creation and database connectivity.
  • It defines a function saveData() to save input data into the database.
  • Tkinter widgets like Label, Entry, and Button are created to design a simple registration form.
  • Input data from the form is collected and inserted into the MySQL database upon clicking the ‘Save’ button or pressing ‘Return’.
  • Proper error handling and closing of the database connection are implemented within the function.
  • The GUI application is run using the mainloop() method.

Conclusion:

As we conclude our exploration into the integration of Graphical User Interface (GUI) applications with Python Database Connection, it becomes clear that this synergy offers a compelling avenue for developers to craft user-friendly and efficient software solutions.

By harnessing the capabilities of GUIs alongside database connectivity, developers empower users with intuitive interfaces that simplify data management tasks and elevate overall user experience. Thus, mastering this fusion of GUI and database interaction stands as a pivotal skill, opening doors to a realm of possibilities in the realm of practical Python applications.

You give me 15 seconds I promise you best tutorials
Please share your happy experience on Google

follow dataflair on YouTube

Leave a Reply

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