I am trying to create a login page that sends the username to the method it redirects to.
@app.route ("/login/", methods=["POST","GET"])
def login ():
if request.method=="POST":
name = request.form.get ("fname")
user = Users.query.filter_by(first_name=name).first ()
name=name.lower ()
print (name)
return redirect(url_for("fav_club", username=name))
return render_template("login.html")
@app.route ("/favclub/<username>", methods=["POST","GET"])
def fav_club (username):
if request.method == "POST":
club = Club.query.filter_by(code=request.form.get ("fccode")).first ()
club.fav_counter += 1
user = Users.query.filter_by(first_name=request.form.get(username)).first()
fav = Favorites(favorite=club, users=user)
db.session.commit()
return "Added Favorite!"
else:
return render_template("favorites.html")
I get the following error: werkzeug.routing.exceptions.BuildError: Could not build url for endpoint 'fav_club'. Did you forget to specify values ['username']?
Every time I try to use dynamic routng, I get an error like this. I do not think this is an HTML issue, but here they are:
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login!</title>
</head>
<body>
<form action="{{ url_for('login') }}" method="post">
<label for="firstname">First Name:</label>
<input type="text" id="firstname" name="fname" placeholder="firstname">
<button type="submit">Submit</button>
</form>
</body>
</html>
favorites.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Find a Club!</title>
</head>
<body>
<form action="{{ url_for('fav_club') }}" method="post">
<label for="club">Favorite Club Code:</label>
<input type="text" id="club" name="fccode" placeholder="favclubcode">
<button type="submit">Submit</button>
</form>
</body>
</html>