UI界面怎么连接数据库python
时间: 2025-06-23 21:30:16 浏览: 7
### 实现Python UI界面与数据库的连接
#### 使用PySide构建UI并与SQLite数据库交互
为了展示如何在Python中实现UI界面与数据库的连接,下面提供一个简单的例子。此示例采用PySide作为图形用户界面框架,并利用SQLite作为后台数据库。
首先安装必要的包:
```bash
pip install PySide6 sqlite3
```
接着定义应用程序的主要逻辑结构如下所示:
1. **创建主窗口类**
通过继承`QMainWindow`来设计应用的主体部分,这里包含了按钮和其他控件用于触发事件处理程序。
2. **建立数据库连接函数**
编写专门的方法负责打开/关闭同SQLITE数据库之间的链接,并执行相应的CRUD命令(增删改查)。
3. **关联动作响应**
当点击界面上特定组件时会调用预设好的槽(slot),从而完成实际的数据操作任务。
下面是完整的代码清单:
```python
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QLineEdit, QLabel
import sqlite3
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Simple Database App")
layout = QVBoxLayout()
# Create widgets for user input and display messages.
self.name_input = QLineEdit(self)
self.submit_button = QPushButton('Submit', self)
self.message_label = QLabel('', self)
# Add the widgets to the layout.
layout.addWidget(QLabel('Enter Name:', self))
layout.addWidget(self.name_input)
layout.addWidget(self.submit_button)
layout.addWidget(self.message_label)
container = QWidget()
container.setLayout(layout)
self.setCentralWidget(container)
# Connect button click event with handler method.
self.submit_button.clicked.connect(self.save_name_to_db)
def save_name_to_db(self):
name = self.name_input.text().strip()
if not name:
self.message_label.setText("Please enter a valid name.")
return
try:
conn = sqlite3.connect(':memory:') # In-memory database connection string used here as an example.
cursor = conn.cursor()
create_table_query = '''CREATE TABLE IF NOT EXISTS names (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);'''
insert_data_query = f'''INSERT INTO names(name) VALUES ('{name}');'''
cursor.execute(create_table_query)
cursor.execute(insert_data_query)
conn.commit()
self.message_label.setStyleSheet("color:green;")
self.message_label.setText(f"'{name}' has been successfully added!")
except Exception as e:
self.message_label.setStyleSheet("color:red;")
self.message_label.setText(str(e))
finally:
if 'conn' in locals():
conn.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
```
上述代码展示了怎样使用PySide搭建基本的应用程序窗体[^4],并通过sqlite3库实现了向内存中的临时表插入记录的功能[^2]。
阅读全文
相关推荐



















