0

我目前正在使用 Tornado RequestHandler.get_argument 来获取 http POST 和 GET 参数。RequestHandler.get_argument 允许您设置默认值。Tornado 中有没有办法在 tornado 中设置 GET 和 POST 参数的最大值和最小值?

4

1 回答 1

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 状态代码

于 2013-04-14T02:42:57.307 回答