Heim  >  Artikel  >  Backend-Entwicklung  >  So rufen Sie übermittelte Formularwerte in Flask ab: Warum ist request.form leer?

So rufen Sie übermittelte Formularwerte in Flask ab: Warum ist request.form leer?

DDD
DDDOriginal
2024-10-30 03:53:02699Durchsuche

How to Retrieve Submitted Form Values in Flask: Why is request.form Empty?

Übergabe und Zugriff auf Formularwerte in Flask

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.

Problemstellung

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.

Lösung

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn