web.input()與web.data()函數比較

web.input()與web.data()是web.py模塊中的兩個函數,都用來獲取http請求包中的信息,但是獲取的信息不同。

web.input()獲取的是通過http請求包第一行的url傳入的參數,返回值是類似於字典的key-value對。由於GET和POST請求包都可以通過url傳入參數,所以兩種請求包均可使用web.input()來獲取url傳入的參數,當然,通常情況下使用web.input()來獲取GET請求包的url參數。

應用示例:假如http請求包中的url處的內容是/index.html?name=kun&age=23,通過以下代碼獲取參數中的值:

>>> user_input = web.input()
>>> user_input.name
'kun'
>>> user_input.age
'23'

可以看出獲取到的值都是字符串類型的。

web.data()獲取的是http請求包中的實體正文,函數返回值類型是字符串。由於GET請求包中沒有實體正文,所以GET請求包是不能使用web.data()函數的,只有POST請求包纔可以使用web.data()函數。

應用示例:假如http POST請求包的實體正文是:username=jay&password=123456,通過以下代碼獲取實體正文:

>>> web.data()
'username=jay&password=123456'

可以看出,獲取的實體正文的數據類型是一整個大的字符串。

綜合來說:

web.input() 獲取url參數,可以用於GET和POST請求包。

web.data() 獲取實體正文,只能用用POST請求包。

發佈了75 篇原創文章 · 獲贊 6 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章