pyqt5+MySQL实现用户的登录注册
时间: 2023-07-29 21:13:35 浏览: 69
好的,我会给您提供一个基于 PyQt5 和 MySQL 的用户登录注册例子。以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QMessageBox
import pymysql
class Login(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Login')
self.username_label = QLabel('Username:', self)
self.username_label.move(20, 20)
self.username = QLineEdit(self)
self.username.move(100, 20)
self.password_label = QLabel('Password:', self)
self.password_label.move(20, 60)
self.password = QLineEdit(self)
self.password.setEchoMode(QLineEdit.Password)
self.password.move(100, 60)
self.login_btn = QPushButton('Login', self)
self.login_btn.move(20, 100)
self.login_btn.clicked.connect(self.login)
self.register_btn = QPushButton('Register', self)
self.register_btn.move(120, 100)
self.register_btn.clicked.connect(self.register)
# 连接数据库
self.conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', database='test')
self.cursor = self.conn.cursor()
def login(self):
username = self.username.text()
password = self.password.text()
# 查询数据库中是否存在该用户
sql = f"SELECT * FROM users WHERE username='{username}' AND password='{password}'"
self.cursor.execute(sql)
result = self.cursor.fetchone()
if result:
QMessageBox.information(self, 'Login', 'Login successful!')
else:
QMessageBox.warning(self, 'Login', 'Incorrect username or password!')
def register(self):
username = self.username.text()
password = self.password.text()
# 查询数据库中是否已经存在该用户名
sql = f"SELECT * FROM users WHERE username='{username}'"
self.cursor.execute(sql)
result = self.cursor.fetchone()
if result:
QMessageBox.warning(self, 'Register', 'Username already exists!')
return
# 在数据库中插入新用户
sql = f"INSERT INTO users(username, password) VALUES('{username}', '{password}')"
self.cursor.execute(sql)
self.conn.commit()
QMessageBox.information(self, 'Register', 'Register successful!')
if __name__ == '__main__':
app = QApplication(sys.argv)
login = Login()
login.show()
sys.exit(app.exec_())
```
这个例子实现了一个基于 MySQL 数据库的用户登录注册功能,用户可以在界面中输入用户名和密码,然后点击“登录”或“注册”按钮。当用户点击“登录”按钮时,程序会在数据库中查找是否存在该用户,如果存在则输出“登录成功”,否则输出“用户名或密码错误”;当用户点击“注册”按钮时,程序会在数据库中插入新用户信息。请注意,这个例子中数据库的连接信息需要根据您的实际情况进行修改。