2016/09/16更新

[Python] Flaskで複数のチェックボックスの値を受け取る

このエントリーをはてなブックマークに追加            

こんにちは、最近Python三昧の@yoheiMuneです。
今日はFlaskアプリケーションにおいて、チェックボックスなど同じname属性で複数存在するものの扱いについて、ブログを書きたいと思います。

画像

目次




今回扱いたいこと

以下のようなフォームとHTMLがある場合に、同じname属性の値をすべて取得する方法をFlaskで実装します。
<form action="/regist" method="POST">
    <label><input type="checkbox" name="fav" value="1">ラーメン</label>
    <label><input type="checkbox" name="fav" value="2">うな丼</label>
    <label><input type="checkbox" name="fav" value="3">メロン</label>
</form>
ここで上記のチェックボックスをすべてチェックされている場合に、「1」「2」「3」の値を受け取りたい次第です。



Flaskで複数のチェックボックスの値を受け取る

そしてFlaskでは以下のように実装します(GETとPOSTで実装が違うので注意です)。
# GETメソッドの場合
@app.route("/test1")
def test1():
    favs = request.args.getlist("fav")
    print("favs:", favs) # ['1','2','3']
    return "ok"

# POSTメソッドの場合
@app.route("/test2", methods=['POST'])
def test2():
    favs = request.form.getlist("fav")
    print("favs:", favs) # ['1','2','3']
    return "ok"
こんな感じで複数の値を受け取ることができます。


最後に

getlistメソッド、なぜかFlaskドキュメントには見つからないんですよね〜。密かな秘密機能なんだろうか。とにもかくにもFlaskは色々な機能が充実していて、かつ軽量なのでとても使いやすいですね。

最後になりますが本ブログでは、Python・フロントエンド・開発関連・Swift・Linux・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。