formからPOST送信したデータをPythonで受け取る
2017-12-01
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 アプリケーションのフレームワークの便利さに感服です.