Heim > Artikel > Backend-Entwicklung > Wie greife ich auf Formularwerte in einer Flask-Ansicht zu, wenn Eingabeelemente keine „Name“-Attribute haben?
Formularwerte in einer Flask-Ansicht veröffentlichen
In einer Flask-Anwendung kann der Zugriff auf Formularwerte aus einem vom Kunden übermittelten HTML-Formular eine Herausforderung sein, wenn Den Eingabeelementen des Formulars fehlt ein „Name“-Attribut.
Problem:
Wenn ein HTML-Formular ohne Angabe der „Name“-Attribute für seine Eingaben übermittelt wird, wird Flask dies tun Gibt ein leeres request.form-Wörterbuch zurück. Dies liegt daran, dass der Server die übermittelten Werte nicht bestimmten Formularfeldern zuordnen kann.
Lösung:
Damit Flask korrekt auf Formularwerte zugreifen kann, stellen Sie sicher, dass jedes Eingabeelement in Das HTML-Formular verfügt über ein eindeutiges „Name“-Attribut. Dieses Attribut bestimmt den Schlüssel, der verwendet wird, um den übermittelten Wert mit dem entsprechenden Formularfeld in der Flask-Ansicht zu verknüpfen.
Betrachten Sie beispielsweise 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>
In der entsprechenden Flask-Ansicht , ist das Wörterbuch „request.form“ leer, da den Eingaben des Formulars die Attribute „Name“ fehlen. Um dieses Problem zu beheben, fügen Sie „Name“-Attribute zu den Eingabeelementen hinzu:
<code class="html"><form method="POST"> <input name="my_input" id="my_input" type="text" value="{{ email }}"> <input id="my_submit" type="submit" value="Submit"> </form></code>
Mit den vorhandenen „Name“-Attributen kann Flask nun übermittelte Werte den entsprechenden Formularfeldern zuordnen. Sie können dann über das Wörterbuch „request.form“ in der Ansicht auf die Formularwerte zugreifen:
<code class="python">@app.route('/page', methods=['POST', 'GET']) def get_page(): if request.method == 'POST': print(request.form) # prints {'my_input': 'value'} print(request.form['my_input']) # prints 'value' return render_template('page.html')</code>
Das obige ist der detaillierte Inhalt vonWie greife ich auf Formularwerte in einer Flask-Ansicht zu, wenn Eingabeelemente keine „Name“-Attribute haben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!