• Skip to main content
  • Skip to secondary menu
  • Skip to primary sidebar

Tech Life

エンジニアの生き方を考えるメディア

  • プログラミング
    • Python入門
    • Flask入門
    • Django入門
  • 利用規約
  • プロフィール
You are here: Home / IT・プログラミング / Python / フレームワーク / Flask / FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する

FlaskでFormを用いてPOSTリクエストを行い、送信された値を取得する

2021年11月26日 by 9nmatsumoto

request関数でPostリクエストの値を取得する

Flaskを利用する上で、Formを用いてPostリクエストで値を渡すことは必須となる。

今回は、どのようにすれば、Postリクエストで値を渡すことができるのか解説する。

まず、FormでPostリクエストの値を送るためのViewとテンプレートを定義する。

  • Viewの定義(home関数でsignup.htmlを表示するように記述する)
from flask import Flask, render_template
app = Flask(__name__)

@app.route('/home', methods=["GET", "POST"])
def home():
    return render_template('signup.html')

if __name__ == '__main__':
    app.run(debug=True)

  • Postリクエストを送るテンプレートの定義(signup.html)
<h1>サインアップページ</h1>
<form action="{{ url_for('home') }}" method="POST">
    <label for="last_name">名字: </label><input type="text" name="last_name">
    <label for="first_name">名前: </label><input type="text" name="first_name">
    <input type="submit" value="送信">
</form>

上のように、シンプルにPostリクエストで、nameがlast_nameとfirst_nameを送信する画面を作成した。

ちなみに画面上には以下のように表示される。

次に、このPostリクエストで送信された値を処理するコードをViewに記載する。

このとき、Postリクエストかどうかリクエストメソッドを取得するにはrequest.methodを用いて、リクエストの値を取得するには、request.form.getを用いる。

テンプレート上で、form action="{{ url_for('home') }}"としているので、home関数上に定義する。

  • Viewの定義(home関数でPostリクエストの際に、取得した値を処理するようにする)
from flask import Flask, render_template, request
app = Flask(__name__)

@app.route('/home', methods=["GET", "POST"])
def home():
    if(request.method == 'POST'):# リクエストがPOSTの場合
        last_name = request.form.get('last_name')# last_nameを取得
        first_name = request.form.get('first_name')# first_nameを取得
        return render_template('home.html', last_name=last_name, first_name=first_name)# last_name, first_nameをhome.htmlに送る
return render_template('signup.html')

if __name__ == '__main__':
    app.run(debug=True)

  • テンプレートの処理(home.htmlにlast_name, first_nameを表示させる)
<p>苗字: {{last_name}}</p>
<p>名前: {{first_name}}</p>

このようにすると、Postリクエストの結果、Viewの中で、送られたfirst_nameとlast_nameを取得して、テンプレートに渡すことができる。実行すると、ブラウザでは、以下のように表示できる。

以上、FlaskでのPostリクエストの方法でした。

Filed Under: Flask, IT・プログラミング Tagged With: flask, POST

Primary Sidebar

注目記事

プロのエンジニアが選ぶPython入門者、初心者向けの書籍10選
元SEが語る、システムエンジニア(SE)ってどんな仕事?きつくてつらいのか?
元SEが語る、システムエンジニアの良いところ

スポンサーリンク