W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Http協(xié)議是萬維網(wǎng)中數(shù)據(jù)通信的基礎(chǔ)。在該協(xié)議中定義了從指定URL檢索數(shù)據(jù)的不同方法。
下表總結(jié)了不同的http方法:
序號 | 方法與描述 |
---|---|
1 |
GET 以未加密的形式將數(shù)據(jù)發(fā)送到服務(wù)器。最常見的方法。 |
2 |
HEAD 和GET方法相同,但沒有響應(yīng)體。 |
3 |
POST 用于將HTML表單數(shù)據(jù)發(fā)送到服務(wù)器。POST方法接收的數(shù)據(jù)不由服務(wù)器緩存。 |
4 |
PUT 用上傳的內(nèi)容替換目標(biāo)資源的所有當(dāng)前表示。 |
5 |
DELETE
刪除由URL給出的目標(biāo)資源的所有當(dāng)前表示。 |
默認(rèn)情況下,F(xiàn)lask路由響應(yīng)GET請求。但是,可以通過為route()裝飾器提供方法參數(shù)來更改此首選項。
為了演示在URL路由中使用POST方法,首先讓我們創(chuàng)建一個HTML表單,并使用POST方法將表單數(shù)據(jù)發(fā)送到URL。
將以下腳本另存為login.html
<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>
現(xiàn)在在Python shell中輸入以下腳本:
from flask import Flask, redirect, url_for, request, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template("login.html")
@app.route('/success/<name>')
def success(name):
return 'welcome %s' % name
@app.route('/login',methods = ['POST', 'GET'])
def login():
if request.method == 'POST':
print(1)
user = request.form['nm']
return redirect(url_for('success',name = user))
else:
print(2)
user = request.args.get('nm')
return redirect(url_for('success',name = user))
if __name__ == '__main__':
app.run()
開發(fā)服務(wù)器開始運(yùn)行后,在瀏覽器中打開login.html,在文本字段中輸入name,然后單擊提交。
表單數(shù)據(jù)將POST到表單標(biāo)簽的action子句中的URL。
http://localhost/login映射到login()函數(shù)。由于服務(wù)器通過POST方法接收數(shù)據(jù),因此通過以下步驟獲得從表單數(shù)據(jù)獲得的“nm”參數(shù)的值:
user = request.form['nm']
它作為變量部分傳遞給'/success' URL。瀏覽器在窗口中顯示welcome 消息。
在login.html中將方法參數(shù)更改為'GET',然后在瀏覽器中再次打開它。服務(wù)器上接收的數(shù)據(jù)是通過GET方法獲得的。通過以下的步驟獲得'nm'參數(shù)的值:
User = request.args.get('nm')
這里,args是包含表單參數(shù)對及其對應(yīng)值對的列表的字典對象。與'nm'參數(shù)對應(yīng)的值將像之前一樣傳遞到'/ success' URL。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: