Python 如何在Django中为第三方REST服务进行分页/分页

Python 如何在Django中为第三方REST服务进行分页/分页,python,django,api,rest,pagination,Python,Django,Api,Rest,Pagination,以flickr为例,请求URL如下所示: 'http://api.flickr.com/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' + settings.FLICKR_API_KEY + '&user_id=' + userid + '&format=json&per_page' + per_page + '&page=' + page + '&nojsonc

以flickr为例,请求URL如下所示:

'http://api.flickr.com/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' + settings.FLICKR_API_KEY + '&user_id=' + userid + '&format=json&per_page' + per_page + '&page=' + page + '&nojsoncallback=1'
其中
页面
控制要显示的页面和
每页
控制要返回的照片数量

为了简化问题,让我们将每页的
设置为固定。所以我的问题是,我如何实现一个分页系统,允许用户在网页上任何时候向前或向后移动一页

我想我需要传递页码来遍历请求URL,以便显示正确的数据。所以我想我不知道如何将模板绑定到views.py。基本上,我正在寻找这个的Django版本


到目前为止,我遇到的示例和插件(例如django分页)主要处理由数据库查询产生的分页

Django分页将处理任何对象列表,而不仅仅是来自数据库的调用。这个示例实际上是从一个与本地模型或数据库无关的示例开始的


对于API类型调用,您只需要将对象读入一个列表,然后根据该列表创建一个新的Paginator对象。您所要做的就是为它提供每页所需的对象数。这真的很简单。

根据您的描述,我会说从page=1开始。如果page=1,则在页面中有一个链接要继续,这将加载page=2。如果您位于一个页面以外的任何其他页面,则生成两个链接,一个用于上一个页面,另一个用于下一个页面,相对于当前页面


如果你想得到更好的帮助,你必须向我们展示一些代码。

对不起,我还是不太确定怎么做。问题是,要将对象读入列表,我需要将页码传递给它。首先,如何自动生成此页码?@Nai:读取所有对象。然后让Django的paginator为您完成其余的工作。请阅读代码示例。它适用于任何列表。因此,从您的其他服务获取所有项目。Django页码信息在相关链接中有完整描述。@S.Lott,因此假设有1000张图像,我必须首先下载所有1000张图像,以获得最终计数,以便计算由此产生的页数?这是最好的方法吗?我可以不在飞行中提出请求吗?@Nai:“我必须先下载所有1000个,才能得到最终的计数,这样我才能计算出结果的页数?”。不,你需要一份清单。下载所有这些是获取列表的一种简单方法。另一种方法是编写生成器函数。从下载所有内容开始,这样你就可以得到一些有用的东西。稍后,您可以修改它。在这种情况下,什么样的代码片段会有帮助?我不知道提供my views.py或我的模板文件是否有用?