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