web.input()與web.data()是web.py模塊中的兩個(gè)函數(shù)酵幕,都用來獲取http請(qǐng)求包中的信息扰藕,但是獲取的信息不同。
web.input()獲取的是通過http請(qǐng)求包第一行的url傳入的參數(shù)芳撒,返回值是類似于字典的key-value對(duì)邓深。由于GET和POST請(qǐng)求包都可以通過url傳入?yún)?shù)未桥,所以兩種請(qǐng)求包均可使用web.input()來獲取url傳入的參數(shù),當(dāng)然芥备,通常情況下使用web.input()來獲取GET請(qǐng)求包的url參數(shù)冬耿。
應(yīng)用示例:假如http請(qǐng)求包中的url處的內(nèi)容是/index.html?name=kun&age=23,通過以下代碼獲取參數(shù)中的值:
user_input = web.input()
user_input.name
'kun'
user_input.age
'23'
可以看出獲取到的值都是字符串類型的门躯。
web.data()獲取的是http請(qǐng)求包中的實(shí)體正文,函數(shù)返回值類型是字符串酷师。由于GET請(qǐng)求包中沒有實(shí)體正文讶凉,所以GET請(qǐng)求包是不能使用web.data()函數(shù)的,只有POST請(qǐng)求包才可以使用web.data()函數(shù)山孔。
應(yīng)用示例:假如http POST請(qǐng)求包的實(shí)體正文是:username=jay&password=123456懂讯,通過以下代碼獲取實(shí)體正文:
web.data()
'username=jay&password=123456'
可以看出,獲取的實(shí)體正文的數(shù)據(jù)類型是一整個(gè)大的字符串台颠。
綜合來說:
web.input() 獲取url參數(shù)褐望,可以用于GET和POST請(qǐng)求包。
web.data() 獲取實(shí)體正文串前,只能用用POST請(qǐng)求包.