Senden eines Formulararrays an Flask
Ich habe ein html-Formular mit mehreren Eingängen wie folgt benannt:
<input name="hello[]" type="text" />
<input name="hello[]" type="text" />
<input name="hello[]" type="text" />
In PHP erhalten Sie diese als ein array, aber es ist die gleiche Art und Weise, in Python mit Flask?
Habe ich versucht, dieses:
hello = request.form['hello']
print hello
In der Flasche, aber das hat nicht funktioniert, ich habe eine "400 bad request":
Bad Request
The browser (or proxy) sent a request that this server could not understand.
Wie mache ich es in der Flasche?
InformationsquelleAutor der Frage theva | 2014-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nach einer PHP-Konvention, das hinzufügen von Klammern an den Feldnamen. Es ist nicht ein web-standard, da aber PHP unterstützt es out of the box ist es beliebt, Ruby on Rails verwendet auch.
Wenn Sie verwenden, die Konvention, um die POST-Daten auf der Kolben-Seite, die Sie brauchen, um gehören in eckigen Klammern in das Feld name. Sie können abrufen alle Werte der Liste mit
MultiDict.getlist()
:Müssen Sie nicht verwenden die
[]
Konvention auf alle, natürlich. Nicht, indem der[]
zu denhello
Namen funktioniert einwandfrei, an welcher Stelle Sie verwenden würdenrequest.form.getlist('hello')
im Kolben.InformationsquelleAutor der Antwort Martijn Pieters
Ich geschrieben eine parse-Funktion, die unterstützt mehrdimensionale dict:
php_post=parse_multi_form(request.form)
Verwendung:
Also ich schlage vor, verwenden dict zu ersetzen-Liste:
Wenn Sie wollen immer noch post, komplexe Daten, schlage ich vor, Sie
application/json
InformationsquelleAutor der Antwort ahui