Я создаю систему входа для части моей курсовой работы, где она запрашивает базу данных, чтобы увидеть, верны ли данные. Он отлично работает, пока я не вводим логин, которого нет в базе данных. В любом случае, я могу заставить работать, даже после того, как mycursor.fetchone() дает ошибку, чтобы ничего не делать?Python: Login none error
Код ниже подпрограммы У меня возникли проблемы с:
#the error message I'm receiving
username, password = mycursor.fetchone()
TypeError: 'NoneType' object is not iterable
#the subroutine I'm having trouble with
def accept(self):
conn = mysql.connector.connect(user, password, host, database)
#create cursor between python and mysql
mycursor = conn.cursor()
query = """
SELECT
username, password
FROM
UserInfo.User
WHERE
username = %s AND password = %s
"""
mycursor.execute(query, (self.textName.text(),self.textPass.text(),))
global username
username, password = mycursor.fetchone()
#self.textName.text() and self.textPass.text() is the username and password entered by the user
if username == self.textName.text() and password == self.textPass.text():
self.GoToLogin()
else:
#the error message I want to display
QtGui.QMessageBox.warning(
self, 'Error', 'Username and password are incorrect')
У меня возникли проблемы с исключениями –
Вот что я имел в виду. Вы не обрабатываете исключение, вызванное 'fetchone', когда пользователь не существует. Вот почему вы должны поместить вызов этого метода между блоком try-except и игнорировать исключение. Поэтому вызовите предупреждение внутри блока except и goto-login сразу после 'fetchone'. –