1. ホーム
  2. python

[解決済み] Flaskにフォームの配列を送信する

2022-02-19 03:10:39

質問

このような名前の複数の入力を持つHTMLフォームがあります。

<input name="hello[]" type="text" />
<input name="hello[]" type="text" />
<input name="hello[]" type="text" />

PHP は、これを配列として取得しますが、PythonでFlaskを使用しても同じように取得できますか?

試してみました。

hello = request.form['hello']

print(hello)

しかし、それはうまくいかず、私は 400 Bad Request :

Bad Request

The browser (or proxy) sent a request that this server could not understand.

Flaskでどうやるの?

どのように解決するのですか?

をフォローしています。 PHP の規約では、フィールド名の前に括弧を付けます。 . これはWeb標準ではありませんが、PHPが最初からサポートしているため、人気があり、Ruby on Railsもこれを使用しています。

その規約を使う場合、Flask 側で POST データを取得するためには インクルード のように、フィールド名に角括弧を使用します。を取得することができます。 すべて を使用してリストの値を取得します。 MultiDict.getlist() :

hello = request.form.getlist('hello[]')

を使用する必要はありません。 [] という規約は、もちろん全くありません。を付けない []hello という名前でも全く問題なく動作しますが、その場合は request.form.getlist('hello') をFlaskで使用します。