我目前正在使用Tornado RequestHandler.get_argument来获取http POST和GET参数。 RequestHandler.get_argument允许您设置默认值。龙卷风有办法吗? 有没有办法在龙卷风中设置GET和POST参数的最大值和最小值?
答案 0 :(得分: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。