有时我想从一个资源中获得完整的响应,有时我想要分页。到目前为止,我只能使用一个或另一个。但是,没有一种方法可以设置烧瓶 - 可以根据我在get请求上传递的参数来使用两者?
如果我想为特定资源禁用分页,我会更改这样的设置:
manager.create_api(someresource, methods=['GET'], results_per_page=None)
但是现在分页完全被禁用,这不是我希望的行为。
,如果默认启用了分页,则仅返回第一页。如果我专门通过查询字符串中的第1页这样,没有办法告诉烧瓶 - 井现在只能获得第一页:
GET http://someaddress/resource?page=1
我实际上能够使用循环解决问题,但我认为这不是一个不错的解决方案,因为我必须使用多个请求。
我请求资源并获取了total_pages,然后我将循环循环到total_pages,并将每次迭代作为参数在查询字符串中作为参数,以获取另一个新请求以获取每个页面:
i = 1
while i <= response.total_pages:
page_response = requests.get("http://someurl/someresource?page=" + str(i))
...
,但我认为这不是解决这个问题的好方法。如果有可能将无烧瓶上的设置更改为无烧瓶的设置,以便仅在查询字符串中作为参数传递为参数,那么我会很高兴,但是如果还有另一种使用两者的方法好。
您可以通过禁用分页来获得所需的行为:
manager.create_api(someresource, methods=['GET'], results_per_page=0)
然后用results_per_page
参数查询API,例如:
GET http://someaddress/resource?results_per_page=2
results_per_page
参数必须是一个正整数,并且是您的新页面大小。该参数在此处进一步记录。
通过这种配置,无需分页的完整响应即可直截了当。只需省略results_per_page
参数:
GET http://someaddress/resource