pyqt5连接mysql
时间: 2024-12-31 10:41:12 浏览: 11
### 使用PyQt5连接到MySQL数据库
为了实现PyQt5应用程序与MySQL数据库之间的交互,通常会借助`mysql.connector`库来建立连接并执行SQL命令。下面是一个简单的例子,展示了如何创建一个基本的GUI界面并通过按钮点击事件触发查询操作。
#### 安装必要的包
首先需要安装 `mysql-connector-python` 和 `PyQt5` 库:
```bash
pip install mysql-connector-python PyQt5
```
#### 创建Python脚本
接下来编写一段Python代码用于展示如何设置这种连接以及处理数据获取的过程[^1]。
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QTextEdit
import mysql.connector
class AppDemo(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Connect PyQt5 With MySQL')
layout = QVBoxLayout()
self.text_edit = QTextEdit()
btn_connect_db = QPushButton('Fetch Data from DB')
layout.addWidget(self.text_edit)
layout.addWidget(btn_connect_db)
self.setLayout(layout)
btn_connect_db.clicked.connect(self.fetch_data_from_db)
def fetch_data_from_db(self):
try:
connection = mysql.connector.connect(
host='localhost',
user='root', # Replace with your username
password='', # Replace with your password
database='testdb' # Your Database name here
)
cursor = connection.cursor(dictionary=True)
query = "SELECT * FROM users LIMIT 5;" # Example table and limit
cursor.execute(query)
result = ''
for row in cursor.fetchall():
result += str(row) + '\n'
self.text_edit.setText(result)
except Exception as e:
self.text_edit.setText(f"Error occurred:\n{str(e)}")
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())
```
这段程序定义了一个名为`AppDemo`的小部件类,它继承自`QWidget`。在这个窗口里有一个文本框用来显示来自数据库的信息,还有一个按钮当被按下时就会调用方法去检索存储于指定表中的记录。
阅读全文