Я настраиваю форму входа в систему, используя Python / Flask / mysql.connector, однако получаю сообщение об ошибке Файл "F: \ Python \ Apps \ webapp \ app.py", строка 84, при входе в систему, если результат>0: TypeError: '>' не поддерживается между экземплярами 'NoneType' и 'int'.
Я пробовал разные вещи, такие как изменение оператора if для чего-то другого и проверка правильности словаря, но я получаю ту же ошибку.
#Login
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
#Get Form
username = request.form['username']
password_candidate = request.form['password']
#Get user by username
result = cursor.execute("SELECT * FROM users WHERE username = %s", [username])
if result > 0:
#Get stored hash
data = cursor.fetchone()
password = data['password']
#compare the Passwords
if sha256_crypt.verify(password_candidate, password):
#Passed
session['logged_in'] = True
session['username'] = username
flash('You are now logged in', 'success')
return redirect(url_for('dashboard'))
else:
error = 'Invalid Login'
return render_template('login.html', error=error)
#Close connection
cursor.close()
else:
error = 'Username not found'
return render_template('login.html', error=error)
return render_template('login.html')
Я ожидал, что форма подпишет вас, если информация, которую вы используете для регистрации, действительна, или отобразит неудачный вход в систему, если информация недействительна. Очевидно, эта информация будет извлечена из базы данных MySQL.