KeyError: 'id' Flask / Python - PullRequest
       18

KeyError: 'id' Flask / Python

0 голосов
/ 02 ноября 2018
@app.route("/login",methods=["GET","POST"])
def login():
    form = LoginForm(request.form)
    if request.method == "POST":
        user_id  = form.user_id.data
        password_entered = form.password.data
        cursor = mysql.connection.cursor()
        sorgu = "Select * From users where user_id = %s"
        cursor.execute(sorgu,(user_id,))
        result = cursor.execute(sorgu,(user_id,))

        if result > 0:
            data = cursor.fetchone()
            real_password = data["password"]
            if sha256_crypt.verify(password_entered,real_password):
                flash("Login Successful","success")
                session["logged_in"] = True
                user_name = data["name"]
                session["name"] = user_name
                session["id"] = user_id
                return redirect(url_for("index"))
            else:
                flash("Password is Wrong","danger")
        else:
            flash("No Such User Can Be Found","danger")
            return redirect(url_for("login"))
    return render_template("login.html",form=form)

@app.route("/panel",methods = ["POST","GET"])
def userpanel():
    if request.method == "GET":
        cursor = mysql.connection.cursor()
        query = "Select * from users where user_id = %s"
        cursor.execute(query,(session["id"],))
        userData = cursor.fetchone()
        form = RegisterForm()
        form.name.data = userData["name"]
        form.email.data = userData["email"]
        return render_template("userpanel.html",form = form)

Я пытаюсь добавить сессию для user_id, но при флеш-вызове KeyError: 'id' для моего запроса в функции userpanel. но сессия ["имя"] работает. ты можешь мне помочь?

1 Ответ

0 голосов
/ 03 ноября 2018

Я исправил эту проблему. Часть ключа сеанса была добавлена ​​в код после того, как пользователь вошел в систему. Информация user_id была добавлена ​​в ключ сеанса, когда пользователь вышел из системы и снова вошел в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...