Python 3 – Flask HTTPメソッド、GETおよびPOSTリクエストの処理

Flaskには、httpリクエストを処理するためのさまざまなデコレータがあります。 Httpプロトコル でのデータ通信の基礎です ワールドワイドウェブ

このプロトコルでは、指定されたURLからデータを取得するためのさまざまな方法が定義されています。 次の表は、さまざまなhttpメソッドをまとめたものです。

リクエスト 目的
取得する 最も一般的な方法。 GETメッセージが送信され、サーバーがデータを返します
役職 HTMLフォームデータをサーバーに送信するために使用されます。 POSTメソッドによって受信されたデータは、サーバーによってキャッシュされません。
GETメソッドと同じですが、応答本文はありません。
プット ターゲットリソースの現在のすべての表現をアップロードされたコンテンツに置き換えます。
削除 URLで指定されたターゲットリソースの現在の表現をすべて削除します。

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

FlaskHTTPメソッド

デフォルトでは、FlaskルートはGETリクエストに応答しますが、route()デコレータのメソッドパラメータを指定することで、この設定を変更できます。

URLルートでのPOSTメソッドの使用を示すために、最初にHTMLフォームを作成し、POSTメソッドを使用してフォームデータをURLに送信します。

次のスクリプトをlogin.htmlとして保存します

1
2
3
4
5
6
7
8
9
<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>

GETおよびPOSTリクエスト

GETリクエストとPOSTリクエストの両方を処理するために、それをデコレータに追加します app.route() 方法。
どんなリクエストでも、デコレータでそれを変更します。

Pythonシェルに次のスクリプトを入力します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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を開き、テキストフィールドに名前を入力して、[送信]をクリックします。

ポストフラスコフォーム

フォームデータは、フォームラベルのaction句のURLにPOSTされます。

ローカルホスト/ログイン login()関数への画像。 サーバーはPOSTメソッドを介してデータを受信するため、フォームデータから取得される「nm」パラメーターの値は、次の手順に従って取得されます。

1
user = request.form['nm']

変数の一部として「/ success」URLに渡されます。 ブラウザはウィンドウにウェルカムメッセージを表示します。

フラスコウェルカムメッセージ

login.htmlでメソッドパラメータを「GET」に変更してから、ブラウザで再度開きます。 サーバーで受信したデータは、GETメソッドを介して取得されます。 次の方法で「nm」パラメータの値を取得します。

1
user = request.args.get('nm')

ここで、argsは、フォームパラメータのペアとそれに対応する値のペアのリストを含むディクショナリオブジェクトです。 ‘nm’パラメーターに対応する値は、以前と同様に ‘/ success’URLに渡されます。

関連コース: Python Flask:Flaskを使用してWebアプリを作成する

Hope this helps!

Source link