淺析form標簽中的GET和POST提交方式區別

form標簽中的GET和POST

一個表單必須指定兩樣東西:

  • form的method參數用於設置表單的提交方式,默認使用POST.
  • action用於設置表單的提交url,如果不寫或者保持空字符串,那麼將使用當前的URL.

1.form表單使用post方式提交的例子

下面例子實現流程:

  • 當我們第一次訪問此接口時,是GET方式(瀏覽器裡訪問一個URL就是一次GET方法,不用解釋),觀察視圖函數可知其給用戶渲染的是帶有form表單的模板頁面。
  • 當我們在輸入框輸入數據,並點擊提交後,就會發送一次POST方式,這樣根據視圖函數,就會在控制臺打印輸入框輸入的數據。

註意:

  • post的提交方式不會在url中顯示參數;
  • 可以通過request.POST.get方式來獲取提交的數據。

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

2.form表單使用get方式提交的例子

下面例子實現流程: 

  • 當我們第一次訪問此接口時,是GET方式(瀏覽器裡訪問一個URL就是一次GET方法,不用解釋),觀察視圖函數可知其給用戶渲染的是帶有form表單的模板頁面。
  • 當我們在輸入框輸入數據,並點擊提交後,就會發送一次GET方式(因為咱再form表單設置的是POST提交方式),這樣根據視圖函數,就會在控制臺打印輸入框輸入的數據。

因為我們的設置,所以點擊模板中的提交按鈕就是一次GET提交,在對應的終端就可以打印form表單提交的a和b的值。

註意:

  • get提交的參數會在url中顯示;
  • 可以通過request.GET.get的方法來獲取提交的參數。

在這裡插入圖片描述

在這裡插入圖片描述

在這裡插入圖片描述

3.一鍵多值的getlist方法

request對象的屬性GET、POST都是QueryDict類型的對象;
與python字典不同,QueryDict類型的對象用來處理同一個鍵帶有多個值的情況。

  • 方法get():
    根據鍵獲取值,隻能獲取鍵的一個值
    如果一個鍵同時擁有多個值,獲取最後一值(因為覆蓋瞭哦!)
  • 方法getlist():
    根據鍵獲取值將鍵的值以列表返回
    可以獲取一個鍵的多個值

比如:

後端如何通過獲取多選框用戶選中的選項——使用getlist方法

在這裡插入圖片描述

在這裡插入圖片描述

4.request中GET和POST對象的屬性

第一個:GET屬性!

  • QueryDict類型的對象
  • 包含get請求方式的所有參數
  • 與url請求地址中的參數對應,位於?後面
  • 參數的格式是鍵值對,如key1=value1
  • 多個參數之間,使用&連接,如key1=value1&key2=value2

第二個:POST屬性!

  •  QueryDict類型的對象
  • 包含post請求方式的所有參數
  • 與form表單中的控件對應
  • 表單中控件要有name屬性,則name屬性的值為鍵,value屬性的值為值,構成鍵值對提交
  • 對於checkbox控件,name屬性一樣為一組,當控件被選中後會被提交,存在一鍵多值的情況.

小拓展:構造一個GET請求——隻要我們點擊 ‘點擊’ 按鈕,會發現作用和《form表單使用get方式》效果一模一樣,我們也可以在後端打印a和b的值(同時也可以觀察瀏覽器中的URL鏈接也可以看出來 哦!),說明數據提交成功!

在這裡插入圖片描述在這裡插入圖片描述

5.GET和POST請求方式總結

  • GET:GET如其名,是從服務器獲取數據,不會更改服務器的狀態和數據,在URL中攜帶參數發送給服務器。
  • POST則是將一定量的數據發送給服務器,一般會更改服務器的數據。
  • POST方法的參數不能在URL當中看到,他是通過body參數傳遞給服務器的,所以相對GET方法直接能在URL當中看到傳遞的參數,顯得更加安全一些.當然,也不能簡單的判定POST方法比GET方法更安全,要使網站保持安全,需要做更多的安全處理.

以上就是淺析form標簽中的GET和POST提交方式區別的詳細內容,更多關於form標簽GET和POST提交方式的資料請關註WalkonNet其它相關文章!

推薦閱讀: