Python 使用Flask创建注册表-AttributeError:';值错误';对象没有属性';名称';

Python 使用Flask创建注册表-AttributeError:';值错误';对象没有属性';名称';,python,flask,web-applications,attributeerror,Python,Flask,Web Applications,Attributeerror,我已经试着让我的注册页面工作了几天了。我想我很接近了,但现在当我尝试从登录页面单击“注册”时,我在终端中收到以下错误消息: errorhandler中的第175行文件“/home/ubuntu/workspace/pset7/finance/application.py” return apology(e.name, e.code) AttributeError:“ValueError”对象没有属性“name” 以下是错误所指向行中的代码(我没有编写它们,它们是随分发代码提供的): 任何帮助都

我已经试着让我的注册页面工作了几天了。我想我很接近了,但现在当我尝试从登录页面单击“注册”时,我在终端中收到以下错误消息:

errorhandler中的第175行文件“/home/ubuntu/workspace/pset7/finance/application.py”

return apology(e.name, e.code)
AttributeError:“ValueError”对象没有属性“name”

以下是错误所指向行中的代码(我没有编写它们,它们是随分发代码提供的):

任何帮助都将不胜感激。我将包括我的寄存器功能代码,以防:

@app.route("/register", methods=["GET", "POST"])
def register():
    """Register user"""
    # 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)

        # Ensure password == confirmation
        elif request.form.get("password") != request.form.get("confirmation"):
            return apology("password and confirmation do not match", 403)

        # Ensure username is not already taken
        rows = db.execute("SELECT * FROM users WHERE username = :username",
                          username=request.form.get("username"))
        if len(rows) == 1:
            return apology("username already taken. please choose another", 403)

        # Add new user to the database
        session["user_id"] = db.execute("INSERT INTO users(username, hash) VALUES(:username, :hash)", username=request.form.get("username"), \
        hash=generate_password_hash(request.form.get("password")))

        # Redirect user to home page
        return redirect("/")

谢谢

我刚刚解决了!我注意到:应用程序中出现错误:注册[GET]时出现异常

因此,似乎错误一定与事物的[获取]方面有关。我查看了代码的/login函数,它的块底部有以下else语句:

(我将login.html更改为register.html)

我想问题是我在处理POST请求,而不是GET请求。最后一条else语句确保为链接后面的人呈现页面。再次感谢你的帮助

@app.route("/register", methods=["GET", "POST"])
def register():
    """Register user"""
    # 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)

        # Ensure password == confirmation
        elif request.form.get("password") != request.form.get("confirmation"):
            return apology("password and confirmation do not match", 403)

        # Ensure username is not already taken
        rows = db.execute("SELECT * FROM users WHERE username = :username",
                          username=request.form.get("username"))
        if len(rows) == 1:
            return apology("username already taken. please choose another", 403)

        # Add new user to the database
        session["user_id"] = db.execute("INSERT INTO users(username, hash) VALUES(:username, :hash)", username=request.form.get("username"), \
        hash=generate_password_hash(request.form.get("password")))

        # 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")