我正在使用 Python/Flask/mysql.connector 设置登录表单,但是如果结果 > 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 数据库中提取。