English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Flask HTTPメソッド

HTTPプロトコルはワールド・ワイド・ウェブデータ通信の基盤です。それは、指定されたURLから異なるデータを取得する方法を定義しています。

以下の表は異なるHTTPメソッドを要約しています -

番号方法説明
1GET暗号化されていない形式でデータをサーバーに送信する最も常用の方法です。
2HEADGETと同じですが、レスポンスボディがありません
3POSTHTMLフォームデータをサーバーに送信するために使用されます。POSTメソッドで受信したデータはサーバーにキャッシュされません。
4PUTターゲットリソースのすべての現在の表示を上書きします
5DELETEURLから指定されたすべてのターゲットリソースのすべての表示を削除します

デフォルトでは、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に渡されます:/成功。