淺析form標(biāo)簽中的GET和POST提交方式區(qū)別
form標(biāo)簽中的GET和POST
一個(gè)表單必須指定兩樣?xùn)|西:
- form的method參數(shù)用于設(shè)置表單的提交方式,默認(rèn)使用POST.
- action用于設(shè)置表單的提交url,如果不寫或者保持空字符串,那么將使用當(dāng)前的URL.
1.form表單使用post方式提交的例子
下面例子實(shí)現(xiàn)流程:
- 當(dāng)我們第一次訪問(wèn)此接口時(shí),是GET方式(瀏覽器里訪問(wèn)一個(gè)URL就是一次GET方法,不用解釋),觀察視圖函數(shù)可知其給用戶渲染的是帶有form表單的模板頁(yè)面。
- 當(dāng)我們?cè)谳斎肟蜉斎霐?shù)據(jù),并點(diǎn)擊提交后,就會(huì)發(fā)送一次POST方式,這樣根據(jù)視圖函數(shù),就會(huì)在控制臺(tái)打印輸入框輸入的數(shù)據(jù)。
注意:
- post的提交方式不會(huì)在url中顯示參數(shù);
- 可以通過(guò)request.POST.get方式來(lái)獲取提交的數(shù)據(jù)。
2.form表單使用get方式提交的例子
下面例子實(shí)現(xiàn)流程:
- 當(dāng)我們第一次訪問(wèn)此接口時(shí),是GET方式(瀏覽器里訪問(wèn)一個(gè)URL就是一次GET方法,不用解釋),觀察視圖函數(shù)可知其給用戶渲染的是帶有form表單的模板頁(yè)面。
- 當(dāng)我們?cè)谳斎肟蜉斎霐?shù)據(jù),并點(diǎn)擊提交后,就會(huì)發(fā)送一次GET方式(因?yàn)樵墼賔orm表單設(shè)置的是POST提交方式),這樣根據(jù)視圖函數(shù),就會(huì)在控制臺(tái)打印輸入框輸入的數(shù)據(jù)。
因?yàn)槲覀兊脑O(shè)置,所以點(diǎn)擊模板中的提交按鈕就是一次GET提交,在對(duì)應(yīng)的終端就可以打印form表單提交的a和b的值。
注意:
- get提交的參數(shù)會(huì)在url中顯示;
- 可以通過(guò)request.GET.get的方法來(lái)獲取提交的參數(shù)。
3.一鍵多值的getlist方法
request對(duì)象的屬性GET、POST都是QueryDict類型的對(duì)象;
與python字典不同,QueryDict類型的對(duì)象用來(lái)處理同一個(gè)鍵帶有多個(gè)值的情況。
- 方法get():
根據(jù)鍵獲取值,只能獲取鍵的一個(gè)值
如果一個(gè)鍵同時(shí)擁有多個(gè)值,獲取最后一值(因?yàn)楦采w了哦?。?/li> - 方法getlist():
根據(jù)鍵獲取值將鍵的值以列表返回
可以獲取一個(gè)鍵的多個(gè)值
比如:
后端如何通過(guò)獲取多選框用戶選中的選項(xiàng)——使用getlist方法
4.request中GET和POST對(duì)象的屬性
第一個(gè):GET屬性!
- QueryDict類型的對(duì)象
- 包含get請(qǐng)求方式的所有參數(shù)
- 與url請(qǐng)求地址中的參數(shù)對(duì)應(yīng),位于?后面
- 參數(shù)的格式是鍵值對(duì),如key1=value1
- 多個(gè)參數(shù)之間,使用&連接,如key1=value1&key2=value2
第二個(gè):POST屬性!
- QueryDict類型的對(duì)象
- 包含post請(qǐng)求方式的所有參數(shù)
- 與form表單中的控件對(duì)應(yīng)
- 表單中控件要有name屬性,則name屬性的值為鍵,value屬性的值為值,構(gòu)成鍵值對(duì)提交
- 對(duì)于checkbox控件,name屬性一樣為一組,當(dāng)控件被選中后會(huì)被提交,存在一鍵多值的情況.
小拓展:構(gòu)造一個(gè)GET請(qǐng)求——只要我們點(diǎn)擊 ‘點(diǎn)擊' 按鈕,會(huì)發(fā)現(xiàn)作用和《form表單使用get方式》效果一模一樣,我們也可以在后端打印a和b的值(同時(shí)也可以觀察瀏覽器中的URL鏈接也可以看出來(lái) 哦?。?,說(shuō)明數(shù)據(jù)提交成功!
5.GET和POST請(qǐng)求方式總結(jié)
- GET:GET如其名,是從服務(wù)器獲取數(shù)據(jù),不會(huì)更改服務(wù)器的狀態(tài)和數(shù)據(jù),在URL中攜帶參數(shù)發(fā)送給服務(wù)器。
- POST則是將一定量的數(shù)據(jù)發(fā)送給服務(wù)器,一般會(huì)更改服務(wù)器的數(shù)據(jù)。
- POST方法的參數(shù)不能在URL當(dāng)中看到,他是通過(guò)body參數(shù)傳遞給服務(wù)器的,所以相對(duì)GET方法直接能在URL當(dāng)中看到傳遞的參數(shù),顯得更加安全一些.當(dāng)然,也不能簡(jiǎn)單的判定POST方法比GET方法更安全,要使網(wǎng)站保持安全,需要做更多的安全處理.
以上就是淺析form標(biāo)簽中的GET和POST提交方式區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于form標(biāo)簽GET和POST提交方式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例
這篇文章主要介紹了接口自動(dòng)化多層嵌套json數(shù)據(jù)處理代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11快速下載VScode并配置Python運(yùn)行環(huán)境(圖文教程)
本文主要介紹了快速下載VScode并配置Python運(yùn)行環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Django1.11配合uni-app發(fā)起微信支付的實(shí)現(xiàn)
這篇文章主要介紹了Django1.11配合uni-app發(fā)起微信支付的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Python使用plt庫(kù)實(shí)現(xiàn)繪制動(dòng)態(tài)曲線圖并導(dǎo)出為GIF或MP4
這篇文章主要為大家詳細(xì)介紹了Python如何使用plt庫(kù)實(shí)現(xiàn)繪制動(dòng)態(tài)曲線圖并導(dǎo)出為GIF或MP4,文中的示例代碼講解詳細(xì),需要的可以了解一下2024-03-03Python使用pytest-playwright的原因分析
pytest-playwright 是一個(gè) Python 包,它允許您使用 Microsoft 的 Playwright 庫(kù)在 Python 項(xiàng)目中進(jìn)行端到端測(cè)試,這篇文章主要介紹了Python為什么使用pytest-playwright,需要的朋友可以參考下2023-03-03手把手教你搭建python+selenium自動(dòng)化環(huán)境(圖文)
本文主要介紹了手把手教你搭建python+selenium自動(dòng)化環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06