Heim > Artikel > Backend-Entwicklung > So rufen Sie übermittelte Formularwerte in Flask ab: Warum ist request.form leer?
Bei der Entwicklung von Webfunktionen ist die Handhabung von Formularübermittlungen von entscheidender Bedeutung. Um diesen Prozess in Flask zu erleichtern, können beim Abrufen übermittelter Formularwerte Probleme auftreten. Dieser Artikel konzentriert sich darauf, zu verstehen, wie man Werte aus HTML-Formularen übermittelt und in Flask-Ansichten darauf zugreift.
Betrachten Sie das folgende HTML-Formular:
<code class="html"><form method="POST"> <input id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form></code>
Und a entsprechende Flask-Route:
<code class="python">@app.route('/page', methods=['POST', 'GET']) def get_page(): if request.method == 'POST': print(request.form) # prints ImmutableMultiDict([]) print(request.form['my_input']) # raises 400 error return render_template('page.html')</code>
Beim Absenden des Formulars stellen Sie möglicherweise fest, dass request.form leer ist. Der Versuch, den Wert für my_input direkt abzurufen, führt zu einem 400-Fehler.
Der Kern des Problems liegt im Fehlen eines Namensattributs in den Eingabefeldern. Damit Flask das Formular ordnungsgemäß verarbeiten kann, sollte jede Eingabe über ein Namensattribut verfügen, das dem gewünschten Schlüssel in request.form entspricht. In diesem Fall sollte die folgende Änderung das Problem beheben:
<code class="html"><input name="my_input" id="my_input" type="text" value="{{ email }}"></code>
Durch Hinzufügen des Namensattributs wird der Eingabewert mit dem Schlüssel „my_input“ an den Server übermittelt. Folglich können Sie den Wert nahtlos in Ihrer Flask-Ansicht abrufen.
Das obige ist der detaillierte Inhalt vonSo rufen Sie übermittelte Formularwerte in Flask ab: Warum ist request.form leer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!