Flask –HTTPメソッド
Httpプロトコルは、ワールドワイドウェブでのデータ通信の基盤です。このプロトコルでは、指定されたURLからデータを取得するさまざまな方法が定義されています。
次の表は、さまざまなhttpメソッドをまとめたものです。
シニア番号 | 方法と説明 |
---|---|
1 |
GET 暗号化されていない形式でデータをサーバーに送信します。最も一般的な方法。 |
2 |
HEAD GETと同じですが、応答本文はありません |
3 |
POST HTMLフォームデータをサーバーに送信するために使用されます。POSTメソッドで受信したデータはサーバーにキャッシュされません。 |
4 |
PUT ターゲットリソースの現在のすべての表現をアップロードされたコンテンツに置き換えます。 |
5 |
DELETE URLで指定されたターゲットリソースの現在の表現をすべて削除します |
デフォルトでは、Flaskルートは GETリクエスト。ただし、この設定は、メソッドの引数をに提供することで変更できます。route() デコレータ。
の使用法を示すために POST URLルーティングのメソッドでは、最初にHTMLフォームを作成し、 POST フォームデータをURLに送信するメソッド。
次のスクリプトをlogin.htmlとして保存します
<html>
<body>
<form action = "http://localhost:5000/login" method = "post">
<p>Enter Name:</p>
<p><input type = "text" name = "nm" /></p>
<p><input type = "submit" value = "submit" /></p>
</form>
</body>
</html>
次に、Pythonシェルに次のスクリプトを入力します。
from flask import Flask, redirect, url_for, request
app = Flask(__name__)
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % name
@app.route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
user = request.form['nm']
return redirect(url_for('success',name = user))
else:
user = request.args.get('nm')
return redirect(url_for('success',name = user))
if __name__ == '__main__':
app.run(debug = True)
開発サーバーの実行が開始されたら、開きます login.html ブラウザで、テキストフィールドに名前を入力し、をクリックします Submit。
フォームデータは、フォームタグのアクション句のURLにPOSTされます。
http://localhost/login にマップされます login()関数。サーバーがデータを受信したのでPOST メソッドでは、フォームデータから取得された「nm」パラメータの値は次の式で取得されます。
user = request.form['nm']
に渡されます ‘/success’可変部分としてのURL。ブラウザにwelcome ウィンドウ内のメッセージ。
メソッドパラメータをに変更します ‘GET’ に login.htmlブラウザでもう一度開きます。サーバーで受信したデータはGET方法。'nm'パラメータの値は、次の式で取得されます。
User = request.args.get(‘nm’)
ここに、 argsフォームパラメータとそれに対応する値のペアのリストを含む辞書オブジェクトです。'nm'パラメータに対応する値は、以前と同様に '/ success'URLに渡されます。