formからPOST送信したデータをPythonで受け取る

POST メソッドで自サイトに向けて送信したフォームデータを Python 3.6 で取得するとき、Flask を使っているとかなり簡単に処理を行うことができます。

スポンサーリンク

GET と POST

フォームデータの送信には POST 以外に GET メソッドもあります。

GET メソッドは送信するときにデータを URL に埋め込む形で送信するため、パスワードなどを含むデータには向いていません。一方、POST はリクエストボディにデータを持っているため、表から見えることはありません。

その他にも違いが色々あるので、用途ごとに使い分けられています。

HTML

まず、フォームを用意しておきます。

<form action="/login" method="post">
  <input type="text" name="user" placeholder="username">
  <input type="password" name="pass" placeholder="password">
</form>

メソッドで POST を指定しなければ GET になります。

また、受信するプログラムは /login に置いてあります。

Python

from flask import Flask, request

app = Flask(__name__)

@app.route('/login')
def login():
    username = request.form['user']
    password = request.form['pass']

if __name__ == '__init__':
    app.run()

flask の request を使えば、こんなに簡単です。

フォームの送信先で /login を指定していますが、相対パスなので Flask のルーティングと一致させなくてもいいです。

最後に

Web アプリケーションのフレームワークの便利さに感服です。

タイトルとURLをコピーしました