3. webpy - post&get

最後更新: 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

 


 

Creative Commons license icon Creative Commons license icon