Flask – HTTP 方法



HTTP 協議是全球資訊網資料通訊的基礎。此協議定義了從指定 URL 檢索資料的不同方法。

下表總結了不同的 HTTP 方法:

序號 方法和描述
1

GET

以未加密的形式向伺服器傳送資料。最常用的方法。

2

HEAD

與 GET 相同,但沒有響應正文

3

POST

用於將 HTML 表單資料傳送到伺服器。POST 方法接收到的資料不會被伺服器快取。

4

PUT

用上傳的內容替換目標資源的所有當前表示。

5

DELETE

刪除 URL 指定的目標資源的所有當前表示

預設情況下,Flask 路由響應 **GET** 請求。但是,可以透過向 **route()** 裝飾器提供 methods 引數來更改此首選項。

為了演示在 URL 路由中使用 **POST** 方法,讓我們首先建立一個 HTML 表單,並使用 **POST** 方法將表單資料傳送到 URL。

將以下指令碼儲存為 login.html

<html>
   <body>
      <form action = "https://: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 shell 中輸入以下指令碼。

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**,在文字欄位中輸入名稱,然後單擊 **提交**。

Post Method Example

表單資料透過表單標籤的 action 子句中的 POST 方法傳送到 URL。

**https:///login** 對映到 **login()** 函式。由於伺服器已透過 **POST** 方法接收資料,因此從表單資料中獲得的 'nm' 引數的值透過以下方式獲得:

user = request.form['nm']

它作為變數部分傳遞到 **‘/success’** URL。瀏覽器在視窗中顯示 **歡迎** 訊息。

Welcome Message

在 **login.html** 中將 method 引數更改為 **‘GET’**,然後在瀏覽器中再次開啟它。伺服器接收到的資料是透過 **GET** 方法。現在透過以下方式獲得 'nm' 引數的值:

User = request.args.get(‘nm’)

這裡,**args** 是一個字典物件,包含表單引數及其對應值的列表。與 'nm' 引數對應的值像之前一樣傳遞到 'success' URL。

廣告