用pyqt写一个登录界面,连接mysql数据库,能对账号密码进行验证
时间: 2023-06-27 18:06:30 浏览: 71
好的,以下是一个简单的登录界面的示例代码,它使用PyQt5库和MySQL数据库进行验证:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QMessageBox
import mysql.connector
class LoginForm(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置窗口标题和大小
self.setWindowTitle('登录')
self.setGeometry(100, 100, 300, 180)
# 创建标签和文本框
self.lbl_username = QLabel('用户名:', self)
self.lbl_username.move(20, 30)
self.txt_username = QLineEdit(self)
self.txt_username.move(100, 30)
self.lbl_password = QLabel('密码:', self)
self.lbl_password.move(20, 70)
self.txt_password = QLineEdit(self)
self.txt_password.setEchoMode(QLineEdit.Password)
self.txt_password.move(100, 70)
# 创建登录按钮
self.btn_login = QPushButton('登录', self)
self.btn_login.move(100, 110)
self.btn_login.clicked.connect(self.login)
self.show()
def login(self):
# 获取输入的用户名和密码
username = self.txt_username.text()
password = self.txt_password.text()
# 连接MySQL数据库
conn = mysql.connector.connect(
host='localhost',
user='root',
password='123456',
database='test'
)
cursor = conn.cursor()
# 查询数据库中是否有匹配的用户名和密码
cursor.execute("SELECT * FROM users WHERE username=%s AND password=%s", (username, password))
result = cursor.fetchone()
# 如果查询结果不为空,显示登录成功的消息框
if result:
QMessageBox.information(self, '登录', '登录成功!')
else:
QMessageBox.warning(self, '登录', '用户名或密码错误!')
# 关闭数据库连接
cursor.close()
conn.close()
if __name__ == '__main__':
app = QApplication(sys.argv)
form = LoginForm()
sys.exit(app.exec_())
```
在这个示例中,我们使用了MySQL Connector/Python来连接MySQL数据库。在登录按钮的`login()`方法中,我们执行了一个SELECT查询,以检查输入的用户名和密码是否与数据库中的记录匹配。如果查询结果不为空,我们会弹出一个消息框,显示登录成功的消息。否则,我们会弹出一个警告框,显示用户名或密码错误的消息。