我正在尝试创建一个Web应用程序,我想检查数据库中是否存在用户名,还检查密码哈希,因为我正在哈希数据库中的所有密码,但是我得到了错误:
提供的绑定数量不正确。当前语句使用1,并且提供了5个
这是我的代码:
@app.route("/login", methods=["GET", "POST"])
def login():
"""Log user in"""
# Forget any user_id
session.clear()
# User reached route via POST (as by submitting a form via POST)
if request.method == "POST":
# Ensure username was submitted
if not request.form.get("username"):
return apology("must provide username", 403)
# Ensure password was submitted
elif not request.form.get("password"):
return apology("must provide password", 403)
# Query database for username
with sqlite3.connect("finance.db") as con:
username=request.form.get("username")
cur = con.cursor()
cur.execute("SELECT * FROM users WHERE username = ?", (username))
con.commit()
# Ensure username exists and password is correct
results = cur.fetchone()
if results != 1 or not check_password_hash(results[0]["hash"], request.form.get("password")):
return apology("invalid username and/or password", 403)
# Remember which user has logged in
session["user_id"] = rows[0]["id"]
# Redirect user to home page
return redirect("/")
# User reached route via GET (as by clicking a link or via redirect)
else:
return render_template("login.html")