Http協議是萬維網數據通信的基礎。 它協議定義了從指定URL中檢索不同數據的方法。
下表概括了不同的http方法 -
| 編號 | 方法 | 描述 |
| 1 | GET | 將數據以未加密的形式發(fā)送到服務器,這最常用的方法。 |
| 2 | HEAD | 與GET相同,但沒有響應主體 |
| 3 | POST | 用于將HTML表單數據發(fā)送到服務器。通過POST方法接收的數據不會被服務器緩存。 |
| 4 | PUT | 用上傳的內容替換目標資源的所有當前表示。 |
| 5 | DELETE | 刪除由URL給出的所有目標資源的所有表示 |
默認情況下,Flask路由響應GET請求。 但是,可以通過為route()裝飾器提供方法參數來更改此首選項。
為了演示在URL路由中使用POST方法,首先創(chuàng)建一個HTML表單并使用POST方法將表單數據發(fā)送到URL。
將以下腳本保存到文件:login.html
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.jixiangtaizi.com.cn # 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 shell中輸入以下腳本。
# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.jixiangtaizi.com.cn
# 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)開發(fā)服務器開始運行后,在瀏覽器中打開login.html,在文本字段中輸入名稱(如: maxsu )并單擊 提交。 
表單數據被提交到<form>標簽的action屬性指定的URL。
http://localhost:5000/login被映射到login()函數。 由于服務器已通過POST方法接收數據,因此從表單數據獲得'name'參數的值,通過以下方式-
# Filename : example.py # Copyright : 2020 By Nhooo # Author by : www.jixiangtaizi.com.cn # Date : 2020-08-08 user = request.form['name']
它作為可變部分傳遞給URL:/success。 瀏覽器在窗口中顯示歡迎消息。 
將login.html中的方法參數更改為GET并在瀏覽器中再次打開。 在服務器上收到的數據是通過GET方法。 'name'參數的值現在通過以下方式獲得 -
# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.jixiangtaizi.com.cn
# Date : 2020-08-08
User = request.args.get('name')這里,args是字典對象,它包含一系列表單參數及其對應值。 與之前一樣,與'name'參數對應的值將傳遞到URL:/success。