English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
HTTPプロトコルはワールド・ワイド・ウェブデータ通信の基盤です。それは、指定されたURLから異なるデータを取得する方法を定義しています。
以下の表は異なるHTTPメソッドを要約しています -
番号 | 方法 | 説明 |
1 | GET | 暗号化されていない形式でデータをサーバーに送信する最も常用の方法です。 |
2 | HEAD | GETと同じですが、レスポンスボディがありません |
3 | POST | HTMLフォームデータをサーバーに送信するために使用されます。POSTメソッドで受信したデータはサーバーにキャッシュされません。 |
4 | PUT | ターゲットリソースのすべての現在の表示を上書きします |
5 | DELETE | URLから指定されたすべてのターゲットリソースのすべての表示を削除します |
デフォルトでは、FlaskルートはGETリクエストに応答します。しかし、route()デコレータにメソッド引数を提供することで、このオプションを変更できます。
URLルートでPOSTメソッドを使用するデモンストレーションとして、まずHTMLフォームを作成し、POSTメソッドを使用してフォームデータをURLに送信します。
以下のスクリプトをファイルに保存してください: login.html
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>Flask HTTPリクエストメソッドの処理</title> </head> <body> <form action="http://localhost:5000/login" method="post"> <p>名前を入力してください:</p> <p><input type="text" name="name" value=""/></p> <p><input type="submit" value="提交" /></p> </form> </body> </html>
現在Pythonシェルに以下のスクリプトを入力してください。
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 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['name'] return redirect(url_for('success',name = user)) else: user = request.args.get('name') return redirect(url_for('success',name = user)) if __name__ == '__main__': app.run(debug = True)
開発サーバーが起動した後、ブラウザでlogin.htmlを開き、テキストフィールドに名前(例えば)を入力します: maxsu )をクリックして 送信。
フォームデータは<form>タグのaction属性で指定されたURLに送信されます。
http://localhost:5000/loginはlogin()関数にマッピングされています。サーバーがPOSTメソッドでデータを受け取ったため、フォームデータから'name'パラメータの値を以下のように取得します-
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 user = request.form['name']
これはURLに可変部分として渡されます:/成功。ブラウザがウィンドウにウェルカムメッセージを表示します。
login.html内のメソッドパラメータをGETに変更し、ブラウザで再度開きます。サーバーに受け取られたデータはGETメソッドです。'name'パラメータの値は以下のように取得されます -
# Filename : example.py # Copyright : 2020 By w3codebox # Author by : ja.oldtoolbag.com # Date : 2020-08-08 User = request.args.get('name')
ここでは、argsは辞書オブジェクトであり、一連のフォームパラメータとその値を含んでいます。以前と同様に、'name'パラメータに対応する値がURLに渡されます:/成功。