【发布时间】:2019-10-18 21:10:14
【问题描述】:
我正在使用 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数据库中提取出来。
【问题讨论】:
标签: python-3.x flask mysql-connector-python