Building Python Applications with MySQL Database

Building Python Applications with MySQL Database: Step-by-Step Guide

This post may contain affiliate links. Please read our disclosure for more info.

MySQL is a popular open-source relational database management system used to store and manage data. Python is a powerful programming language that is widely used for developing various applications including web applications, data analysis, and machine learning.

Python provides multiple libraries and modules to connect and work with different databases including MySQL. In this post, we will explore how to use Python to build applications using MySQL.

Setting up MySQL database and Python environment

Before we start building Python applications using MySQL, we need to set up the MySQL database and Python environment.

Building Python Applications with MySQL Database

Installing MySQL

First, we need to install MySQL on our system. We can download and install MySQL from the official MySQL website: https://dev.mysql.com/downloads/mysql/

Once the installation is complete, we can start the MySQL server and log in to the MySQL command line interface using the following command:

mysql -u root -p

Installing Python libraries

Next, we need to install the required Python libraries to work with MySQL. We can use the following command to install the ‘mysql-connector-python’ library:

pip install mysql-connector-python

Creating a MySQL database and table using Python

Now that we have set up the MySQL database and Python environment, let’s create a new MySQL database and table using Python.

We can use the following Python code to connect to the MySQL server and create a new database:

import mysql.connector

# Connect to the MySQL server
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password"
)

# Create a new database
mycursor = mydb.cursor()
mycursor.execute("CREATE DATABASE mydatabase")

Once the database is created, we can create a new table using the following Python code:

# Connect to the MySQL database
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  password="password",
  database="mydatabase"
)

# Create a new table
mycursor = mydb.cursor()
mycursor.execute("CREATE TABLE customers (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), address VARCHAR(255))")

Performing CRUD operations using Python

CRUD stands for Create, Read, Update, and Delete, which are the four basic functions that can be performed on a database. Python is a versatile language that is commonly used for developing applications that interact with databases. In this post, we will learn how to perform CRUD operations on a MySQL database using Python.

You might also like:   Advanced Python: Deque or Double ended queues

Setting up the database

Before we can start performing CRUD operations, we need to set up a database. We will be using the MySQL database for this example.

First, make sure that you have MySQL installed on your machine. If you don’t have MySQL installed, you can download it from the official website: https://dev.mysql.com/downloads/

Once you have installed MySQL, open the MySQL shell and create a new database. For example, we can create a database called “example_db” using the following command:

CREATE DATABASE example_db;

Next, create a new table in the database. For example, we can create a table called “users” with columns for “id”, “name”, and “email” using the following command:

CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255));

Now that we have set up our database and table, we can start performing CRUD operations using Python.

Connecting to the database

To connect to the MySQL database using Python, we will be using the PyMySQL library. First, we need to install PyMySQL using pip:

pip install pymysql

Once PyMySQL is installed, we can connect to the database using the following code:

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    db='example_db'
)

Replace “root” with the username and “password” with the password for your MySQL installation.

Creating records

To create a new record in the “users” table, we can use the following code:

with connection.cursor() as cursor:
    sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
    cursor.execute(sql, ('John Doe', 'johndoe@example.com'))
connection.commit()

This code creates a new record in the “users” table with the name “John Doe” and email “johndoe@example.com“.

You might also like:   Mastering Advanced Python's Meta Classes: A Comprehensive Guide with Examples and Best Practices

Reading records

To read records from the “users” table, we can use the following code:

with connection.cursor() as cursor:
    sql = "SELECT * FROM users"
    cursor.execute(sql)
    result = cursor.fetchall()
print(result)

This code selects all records from the “users” table and prints them to the console.

Updating records

To update a record in the “users” table, we can use the following code:

with connection.cursor() as cursor:
    sql = "UPDATE users SET email=%s WHERE name=%s"
    cursor.execute(sql, ('newemail@example.com', 'John Doe'))
connection.commit()

This code updates the email of the record with the name “John Doe” to “newemail@example.com“.

Deleting records

To delete a record from the “users” table, we can use the following code:

with connection.cursor() as cursor:
    sql = "DELETE FROM users WHERE name=%s"
    cursor.execute(sql, 'John Doe')
connection.commit()

This code deletes the record with the name “John Doe” from the “users” table.

Closing the connection

Once we have finished performing CRUD operations, we should close the connection to the database. This ensures that the database resources are freed up and available for use by other applications.

To close the connection, we can simply call the close() method on the connection object. Here’s an example:

# Closing the connection
conn.close()

It’s important to note that if we don’t close the connection explicitly, the connection will be closed automatically when the Python interpreter exits. However, it’s a good practice to close the connection explicitly to avoid any potential issues with resource leaks.

In addition to closing the connection, it’s also a good practice to handle any exceptions that may occur while performing database operations. We can use a try-except block to catch any exceptions that may be raised and handle them appropriately.

You might also like:   MongoDB with Python: Everything You Need to Know

Here’s an example:

try:
    # Perform database operations here
except Exception as e:
    # Handle the exception here
finally:
    # Close the connection
    conn.close()

In the try block, we can perform the database operations. If an exception is raised, it will be caught by the except block where we can handle the exception appropriately. Finally, we close the connection in the finally block.

BECOME APACHE KAFKA GURU – ZERO TO HERO IN MINUTES

ENROLL TODAY & GET 90% OFF

Apache Kafka Tutorial by DataShark.Academy

By following this pattern of handling exceptions and closing the connection, we can ensure that our database operations are reliable and won’t cause any resource leaks or other issues.

Conclusion

In this tutorial, we learned how to build Python applications using MySQL database. We started by setting up a connection to the MySQL server using the mysql-connector-python library, and then creating a database and a table to store our data. We also covered how to perform CRUD (Create, Read, Update, Delete) operations on the database using Python.

We created a Python script that can add new records to the database, retrieve records from the database, update existing records, and delete records from the database. We also discussed some best practices for working with databases in Python, such as closing the database connection when we are done with it.

By following the steps outlined in this tutorial, you should now be able to build Python applications that can interact with MySQL databases, and perform basic CRUD operations on them. With this foundation, you can further explore the capabilities of MySQL and Python to build more complex and powerful applications.


[jetpack-related-posts]

Leave a Reply

Scroll to top