2017-06-25 3 views
0

Ich versuche, Flask-WTF für ein neues Formular zu verwenden, das ich zu einer Flask-App hinzufüge, die ich kürzlich geerbt habe. Ich bin ziemlich neu im Flask-Ökosystem (völlig neu bei WTForms) und habe seit vier Jahren keine Webentwicklung mehr gemacht.Umleiten bei Formularvalidierungsfehler (Flask-WTForms)

Beispielcode in der Flask-WTF-Dokumentation rendert eine Seite bei Formularvalidierungsfehler statt Umleiten (Post/Redirect/Get). An diesem Punkt würde eine Browseraktualisierung den vorherigen POST erneut senden. Das ist nicht gut, oder? Während die meisten Leute diesem Szenario keine Aufmerksamkeit schenken, sehe ich ein paar Leute, die das Gefühl haben, etwas zu vermeiden (z. B. here und here).

Also, wie würde ich dieses Problem bei der Verwendung von Flask-WTF vermeiden? Wenn ich bei einem fehlgeschlagenen Validierungsvorgang weiterleite, würde ich die Möglichkeit verlieren, Validierungsfehler für jedes Feld anzuzeigen. Oder sollte ich mir über dieses Szenario keine Sorgen machen?

Antwort

0

Persönlich nie das Gefühl, dass dies ein Problem war. Ich benutze Flask-WTF w/Flask-Bootstrap und es zeigt Formularfeldfehler für mich auf eine fehlgeschlagene Validierung. Wenn sie versuchen, das Formular erneut zu senden, schlägt es erneut fehl und erreicht nie die Datenbankebene, sodass Sie sich nicht um das Problem kümmern müssen, das Post/Redirect/Get zu lösen versucht.

@app.route('/', methods=['GET', 'POST']) 
def index(): 
    form = MyForm() 
    if form.validate_on_submit(): 
     # add/update db. if form is invalid you never get here 
     return redirect(url_for('success')) 
    return render_template('index.html', form=form) 
+0

Aber es wird nicht unbedingt in der Zukunft erneut fehlschlagen, wenn sich ein Zustand seit der vorherigen Anfrage geändert hat. –

Verwandte Themen