我有3个登录信息:
字段空 错误登录 成功登录
如果输入不正确的信息登录他显示我的错误登录,我想要的,确定完成。 如果单击“登录btn”而不填写字段,则会显示错误消息“我想要的”确定完成。 但如果输入正确的信息,他会向我显示两条不同的消息,他会同时向我显示错误登录和成功登录:
from cgitb import enable
from peewee import *
from PyQt5.QtCore import QPropertyAnimation
from PyQt5 import QtCore, QtGui, QtWidgets, uic
from PyQt5.QtWidgets import QPushButton, QLineEdit
import sys
import pymysql
pymysql.install_as_MySQLdb()
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, maxWidth=None):
super(MyWindow, self).__init__()
self.mysql_db = MySQLDatabase('data', user='root', password='toor', host='127.0.0.1', port=3306)
uic.loadUi('MainWindow.ui', self)
self.handel_buttons()
self.db_connection()
self.close_popup_error()
self.popup_success()
self.hide_frame()
self.close_popup_error_empty()
def db_connection(self):
self.cur = self.mysql_db.cursor()
print('connected')
def handel_buttons(self):
#### Buttons for LOGIN page ######
self.btn_log.clicked.connect(self.page_login)
self.btn_close_popup_empty.clicked.connect(lambda: self.frame_empty.hide())
self.btn_close_popup_2.clicked.connect(lambda: self.frame_success.hide())
self.btn_close_popup.clicked.connect(lambda: self.frame_error.hide())
def page_login(self):
username = self.lineEdit_10.text()
password = self.lineEdit_5.text()
if len(username) == 0 or len(password) == 0:
self.frame_empty.show() ### if fields empty show error msg
else:
self.cur.execute(''' SELECT username , password FROM users''')
data = self.cur.fetchall()
for row in data:
if row[0] == username and row[1] == password:
self.frame_success.show() ##if username & password CORRECT show success msg
else:
self.frame_error.show() ##if username & password INCORRECT show error msg
def close_popup_error(self):
self.frame_error.hide()
print('error Login ')
def close_popup_error_empty(self):
self.frame_empty.hide()
print('Field empty')
def popup_success(self):
self.frame_success.hide()
print('success login')
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
我无法测试它,但您可以获取数据库中的所有用户,然后检查所有用户的
if/else
,其中一个用户可以获取SUCCESS
,而其他用户可以获取ERROR
您不应该使用
else
,但仅当您在没有SUCCESS
的情况下完成for循环时才应设置错误差不多
Python对此也有特殊的构造
else
需要与for
相同的缩进,而不是与if
相同的缩进相关问题 更多 >
编程相关推荐