KeyError:“ id”烧瓶/ Python

时间:2018-11-02 20:45:23

标签: python-3.x flask

@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添加会话,但是烧瓶在userpanel函数中为我的查询提高了KeyError:'id'。 但是session [“ name”]正在工作。你能帮我吗?

1 个答案:

答案 0 :(得分:1)

我解决了这个问题。 用户登录后,会话密钥部分已添加到代码中。用户注销并再次登录时,User_id信息已添加到会话密钥中。