开发者社区 问答 正文

我得到错误的登录路径TypeError: 'int'对象是不可订阅的

@app。路径("途径" = q邮件) 戴夫运行(): 安迪:

# 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
    rows = db.execute("SELECT * FROM users WHERE username = :username",
                      username=request.form.get("username"))

    # Ensure username exists and password is correct
    if len(rows) != 1 or not check_password_hash(rows[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")
return apology("TODO")

在这里输入图像描述 在这里输入图像描述 当我为pset9 finance运行上面的代码时,它给出了这个错误" TypeError: 'int' object is not subscriptable" 据我所知,问题出在第192行session["user_id"] =行[0]["id"]。谁能提出他/她的意见?谢谢 问题来源StackOverflow 地址:/questions/59465868/i-am-getting-error-for-the-login-route-typeerror-int-object-is-not-subscripta

展开
收起
kun坤 2019-12-25 16:08:46 613 分享 版权
1 条回答
写回答
取消 提交回答
  • 实际上,问题出在index。可以login从发行版代码中期望它起作用。login重定向到"/"(索引函数)。

    在本地运行代码时,登录注册用户时将产生相同的错误。烧瓶终端中的回溯应该引起您的注意:

    user = db.execute("SELECT * FROM users WHERE id = :id", id = session["user_id"][0]["cash"])

    请注意,它正在尝试将id设置为session["user_id"][0]["cash"]。session["user_id"]是一个int。仔细检查语法。

    2019-12-25 17:45:40
    赞同 展开评论