了解 Request Handler:
Request Handler 提供 get( )、post( ) 兩個方法針對不同類型請求 ( GET、POST ) 做出反應,因此使用上應注意。例如,請求為 POST 而 class 中只定義了 get() 的方法會出現錯誤訊息 ( 405 Method Not Allowed )。程式碼參考如下:
# 簡單的 Handler 範例
class MainPage(webapp2.RequestHandler):
# 對應 POST 方法
def post(self):
# Do what you want ...
# 對應 GET 方法
def get(self):
# Do what you want ...
取得傳入參數:
以 GET 請求為例子,假設 Request 傳入兩個參數分別是 name 與 age ,而參數值分別是 Kelly 與 19,所以 Request 應該是長得類似像這樣 ( .../request?name=Kelly&age=19 )。我們可以在 Handler 中設定取得參數的方式為:
class MainPage(webapp2.RequestHandler):
def get(self):
# 取得參數 name 的值
self.request.get("name")
# 取得所有參數
self.request.GET
# 取得參數 name 的值,若有兩個 name 參數則顯示最後一個
self.request.GET['name']
# 取得所有名為 name 參數值
self.request.GET.getall('name')
# 取得所有參數
self.request.GET.items()
至於 post( ) 的方式基本上相同,差別在於必須改成 request.POST * 。若你覺得麻煩的話,可以使用 request.params ,這個方法就不局限於是 GET 或是 POST。更詳細相關 Request 物件的屬性,請參考這部分文件。Environment :
・ Arch Linux
・ Python 2.7
Reference :
・ Webapp2 official site