2013-04-14 53 views
0

我目前使用Tornado RequestHandler.get_argument獲取http POST和GET參數。 RequestHandler.get_argument允許您設置默認值。有沒有辦法在龍捲風 有沒有辦法設置龍捲風的GET和POST參數的最大值和最小值?龍捲風設置minmum和get_argument的最大值

回答

1

爲什麼不使用簡單的if語句?

例如,如果您的最低可接受值是7和最大可接受值是47你可以寫:

def post(self): 
    my_arg = self.get_argument('my_arg') 
    if not 7 <= my_arg <= 47: 
     raise tornado.web.HTTPError(400) # 400 Bad Request 

如果你這樣做了很多,你可以嘗試覆蓋方法,如:

class MyHandler(tornado.web.RequestHandler): 

    def get_argument(self, name, minimum, maximum): 
     argument = super(MyHandler, self).get_argument(name) 
     if not minimum <= argument <= maximum: 
      raise tornado.web.HTTPError(400) # 400 Bad Request 
     return argument 

    def post(self): 
     small_arg = self.get_argument('small_arg', 1, 3) 
     medium_arg = self.get_argument('medium_arg', 7, 47) 
     large_arg = self.get_argument('large_arg', 9001, 10000) 

隨意選擇不同的HTTP Status Code