Нуб, пытаясь выяснить, как получить доступ к записям в моей базе данных sqlite из моего файла application.py. Короче говоря, я пытаюсь добавить нового пользователя и хэшировать пароль к моей базе данных, а затем держать пользователя в системе. Я использую много того же кода из данной функции входа (проект CS50 Finance), но получение ошибки 'list index out of range', означающей, что я не получаю доступ к строке должным образом. Простые ответы (которые я могу понять) предпочтительнее сложных, которые я не могу.
Я безуспешно искал здесь и в сети.
@app.route("/register", methods=["GET", "POST"])
def register():
# Forget any user_id
session.clear()
# User reached route via POST (as by submitting a form via POST)
if request.method == "POST":
# Query database for username (it should not be there if new user)
rows = db.execute("SELECT * FROM users WHERE username = :username",
username=request.form.get("username"))
hash = generate_password_hash(request.form.get("password"))
if len(rows) != 0:
return apology("Username is already in use, please choose a unique username", 403)
else:
db.execute("INSERT INTO users (username, hash) VALUES(:username, :hash)", username=request.form.get("username"), hash=hash)
# Problem is with the below line (copied from Login function):
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("register.html")