Flask-http-methods
Flask – HTTPメソッド
HTTPプロトコルは、World Wide Webでのデータ通信の基盤です。 このプロトコルでは、指定されたURLからデータを取得するさまざまな方法が定義されています。
次の表は、さまざまなhttpメソッドをまとめています-
Sr.No. | Methods & Description |
---|---|
1 |
GET 暗号化されていない形式でデータをサーバーに送信します。 最も一般的な方法。 |
2 |
HEAD GETと同じですが、応答本文はありません |
3 |
POST HTMLフォームデータをサーバーに送信するために使用されます。 POSTメソッドによって受信されたデータは、サーバーによってキャッシュされません。 |
4 |
PUT ターゲットリソースの現在のすべての表現を、アップロードされたコンテンツで置き換えます。 |
5 |
DELETE URLで指定されたターゲットリソースの現在の表現をすべて削除します |
デフォルトでは、Flaskルートは GET リクエストに応答します。 ただし、この設定は、* route()*デコレータにメソッド引数を提供することで変更できます。
URLルーティングでの POST メソッドの使用方法を示すために、最初にHTMLフォームを作成し、 POST メソッドを使用してフォームデータをURLに送信します。
次のスクリプトをloginlとして保存します
<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)
開発サーバーの実行が開始されたら、ブラウザーで loginl を開き、テキストフィールドに名前を入力して、[送信]をクリックします。
フォームデータは、formタグのaction節のURLにPOSTされます。
*http://localhost/login* は* login()*関数にマッピングされます。 サーバーは *POST* メソッドによってデータを受信しているため、フォームデータから取得した「nm」パラメーターの値は次のように取得されます-
user = request.form['nm']
変数部分として ’/success’ URLに渡されます。 ブラウザのウィンドウに welcome メッセージが表示されます。
*loginl* でメソッドパラメータを *‘GET’* に変更し、ブラウザでもう一度開きます。 サーバーで受信されるデータは *GET* メソッドによるものです。 「nm」パラメータの値は次のように取得されます-
User = request.args.get(‘nm’)
ここで、 args は、フォームパラメータとそれに対応する値のペアのリストを含む辞書オブジェクトです。 「nm」パラメーターに対応する値は、以前と同様に「/success」URLに渡されます。