J'essaie d'afficher plusieurs messages flash sur mon code HTML en utilisant flask pour toutes les erreurs qui pourraient survenir avec un formulaire de validation. En ce moment seulement un fait. Y a-t-il un moyen de faire cela? Peut-être avec une sorte de liste vide que les messages d'erreur vont dans, puis itérer à travers cette liste sur le côté html?Affichage de plusieurs messages flash avec un flacon
python:
@app.route("/user", methods=['POST'])
def create_user():
if len(request.form["name"]) < 1:
flash("Name cannot be blank")
return redirect("/")
else:
session["name"] = request.form["name"]
session["location"] = request.form["location"]
session["language"] = request.form["language"]
if len(request.form["comment"]) > 120:
flash("Comment cannot be longer than 120 characters")
return redirect("/")
elif len(request.form["comment"]) < 1:
flash("Comment cannot be blank")
else:
session["comment"] = request.form["comment"]
return redirect("/results")
html:
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<p>{{ message }}</p>
{% endfor %}
{% endif %}
{% endwith %}
<form action="/user" method="POST" accept-charset="utf-8">
<label>Name:</label>
<div id=right>
<input type="text" name="name">
</div>
<label>Location:</label>
<div id=right>
<select name="location">
<option value="location1">Location 1</option>
<option value="location2">Location 2</option>
</select>
</div>
<label>Language:</label>
<div id=right>
<select name="language" >
<option value="choice1">Choice 1</option>
<option value="choice2">Choice 2</option>
</select>
</div>
<label>Comment (optional):</label>
<textarea name="comment" rows="5", cols="35"></textarea>
<button type="submit">Submit</button>
</form>
Oh, ouah! Ouais, c'est parfaitement logique, et un joli moment pour comprendre que rediriger si rapidement empêcherait ces messages flash. Je vois ce que vous avez fait avec les erreurs et redirige ensuite vers n'importe quelle page basée sur celles-ci. Merci beaucoup! –