我正在使用flask_restful
构建一个抽象数据库的api服务器。我想支持很多HTTP请求参数,我想知道除了编写一英里长的if语句之外,是否有一种简单的方法来检查是否没有传递任何参数。是的,我可以将if语句包装成函数,但我希望有一种默认的更简单的方法,我不知道
# Query args
parser = reqparse.RequestParser()
parser.add_argument("arg1", type=str, required=False)
parser.add_argument("arg2", type=str, required=False)
parser.add_argument("argn", type=str, required=False)
# API Resource
class SomeResource(Resource):
def get(self):
args = parser.parse_args()
# A mile long if statement.
if not args['arg1'] and not args['arg2'] and not args['argn']:
result = Unicorndb.query.all()
return UnicornSchema(many=True).dump(result)
有两个功能
all
和any
如果您有这样一个列表
list = [True, False, True]
,并且如果您将上述两个函数应用于此列表,您将得到如下结果:由此,您可以清楚地看到,如果所有值都为True,
all
函数将返回True,如果至少有一个值为True,any
函数将返回True这不仅适用于真与假,而且适用于所有人。 它会变成一个布尔。例如:
bool(1) = True
有了这种理解,我们可以在你的情况下做类似的事情
如果您不传递任何参数,并且如果您打印参数,您将得到
{'rate': None, 'name': None}
,这两个值都是Nonebool(None)
将为False因此,获取args.values()并将其传递到
all
函数中。如果所有参数都被传递,那么您将得到True
值。或者您可以调用any
函数。这将返回True
至少传递一个值一言以蔽之:
相关问题 更多 >
编程相关推荐