最後更新: 2019-07-25
目錄
- web.input() - Get data by field
- web.data() - Get POST 's Raw data
web.input
使用:
i = web.input(field="default value")
# 同時支援 GET, POST 取值
# returns 回一個 web.storage object <-- 用 i.<value> 存取, 所有 values 都是 string 來
P.S.
* web.input() values will be strings even if there are numbers passed to it.
* 當存取的值不存在時, 而它又沒有 default value 時, 那會出 exceptions.AttributeError
多參數
class ddns: def GET(self): i = web.input(u='nouser',p='nopw') return i
curl http://192.168.88.182:8088/ddns?c=999
result
<Storage {'p': 'nopw', 'c': u'999', 'u': 'nouser'}>
List:
e.g.
http://example.com?id=10&id=20
class SomePage: def GET(self): user_data = web.input(id=[]) return "<h1>" + ",".join(user_data.id) + "</h1>"
# 當有多個值時, 那要 ",".join(user_data.id)
限制 get & post 的設定:
get_input = web.input(_method='get')
post_input = web.input(_method='post')
# both 同時會取 get 及 post 的值 (Default)
Get POST 's Raw data
Reading raw data from post
class RequestHandler():
def POST():
data = web.data() # you can get data use this method (str 來)
Example: web.data() 的 Output
username=test&password=test
當 form 是 enctype="text/plain"
那 web.data() 的 result 是
username=test <-- 換行 password=test