57

私の問題は、指定されたコードで次のことです。

from flask import Flask, request

app = Flask(__name__)

@app.route("/")
def hello():
    return str(request.values.get("param", "None"))

app.run(debug=True)

そして私は訪問します:

http://localhost:5000/?param=a&param=bbb

['a', 'bbb'] の出力を期待する必要がありますが、Flask は最初のパラメーターのみを受け入れ、残りは無視するようです。

これはFlaskの制限ですか?それとも設計によるものですか?

4

4 に答える 4

106

を使用できますgetlist。これは Django のものに似ていますgetListが、何らかの理由で Flask のドキュメントには記載されていません。

return str(request.args.getlist('param'))

結果は次のとおりです。

[u'a', u'bbb']

request.argsパラメータがクエリ文字列にある場合(質問のように)、request.form値が同じ名前の複数のフォーム入力から 取得された場合に使用します。request.values両方を組み合わせますが、通常、より具体的なコレクションでは避ける必要があります。

于 2013-01-07T00:56:01.420 に答える