[파이썬] wxPython 데이터베이스 연동

wxPython logo

wxPython is a popular library for developing desktop applications using the Python programming language. It provides a simple and intuitive way to create user interfaces with various widgets. One common use case in desktop applications is to connect and interact with a database. In this blog post, we will explore how to connect and work with a database using wxPython.

Prerequisites

Before we start, make sure you have the following prerequisites installed:

pip install wxPython
pip install mysql-connector-python

Connecting to the Database

To connect to a database, we need to import the necessary libraries, create a connection object, and establish a connection with the database. Here’s an example of connecting to a MySQL database using wxPython:

import wx
import mysql.connector

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(400, 300))
        self.panel = wx.Panel(self)
        
        # Create a connection object
        self.conn = mysql.connector.connect(
            host='localhost',
            user='your_username',
            password='your_password',
            database='your_database'
        )
        
        # Check if the connection was successful
        if self.conn.is_connected():
            print('Connected to MySQL database')

app = wx.App()
frame = MyFrame(parent=None, title='Database Connection Example')
frame.Show()
app.MainLoop()

In the above code, we create a MyFrame class that inherits from wx.Frame. Inside the constructor, we create a connection object using the mysql.connector library and provide the necessary connection details such as the host, username, password, and database name. We then check if the connection is successful using the is_connected() method.

Querying the Database

Once we have established a connection with the database, we can perform various operations such as querying data, inserting records, updating records, and deleting records. Here’s an example of querying data from a MySQL database using wxPython:

import wx
import mysql.connector

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        wx.Frame.__init__(self, parent, title=title, size=(400, 300))
        self.panel = wx.Panel(self)
        
        # Create a connection object
        self.conn = mysql.connector.connect(
            host='localhost',
            user='your_username',
            password='your_password',
            database='your_database'
        )
        
        # Check if the connection was successful
        if self.conn.is_connected():
            print('Connected to MySQL database')
            
            # Create a cursor object
            cursor = self.conn.cursor()
            
            # Execute SQL query
            cursor.execute('SELECT * FROM your_table')
            
            # Fetch all rows from the result set
            result = cursor.fetchall()
            
            # Print the fetched data
            for row in result:
                print(row)
            
            # Close the cursor and connection
            cursor.close()
            self.conn.close()

app = wx.App()
frame = MyFrame(parent=None, title='Database Query Example')
frame.Show()
app.MainLoop()

In the above code, once the connection is established, we create a cursor object using the cursor() method of the connection object. We then execute an SQL query using the execute() method and fetch all rows from the result set using the fetchall() method. Finally, we iterate over the fetched data and print it.

Conclusion

In this blog post, we learned how to connect and work with a database using wxPython. We covered the basics of establishing a connection with a database and querying data from it. With this knowledge, you can now start building powerful desktop applications that interact with databases.