Javascript Web API端点的Django分页问题

Javascript Web API端点的Django分页问题,javascript,django,django-rest-framework,pagination,Javascript,Django,Django Rest Framework,Pagination,因此,我尝试对API端点进行调用,该端点可以将结果返回到范围为0-450000项的模板。API也有一个搜索端点,https://api.rawg.io/api/games?search=rimworld,因为这只会产生12个游戏,所以只有一个页面,我的功能可以正常工作。当结果超过20个时,此API(RAWG.IO API)每页允许的最大值。这导致JSON有一个“next”键,类似这样,https://api.rawg.io/api/games?page=2&search=grand 我一辈子都搞

因此,我尝试对API端点进行调用,该端点可以将结果返回到范围为0-450000项的模板。API也有一个搜索端点,
https://api.rawg.io/api/games?search=rimworld
,因为这只会产生12个游戏,所以只有一个页面,我的功能可以正常工作。当结果超过20个时,此API(RAWG.IO API)每页允许的最大值。这导致JSON有一个“next”键,类似这样,
https://api.rawg.io/api/games?page=2&search=grand

我一辈子都搞不懂如何从超过第1页的任何一页中获取数据。我已经求助于使用JS来编写这个函数,但我更愿意使用Django视图。我遇到了同样的问题,我无法收集超过第一页的内容。每当有多个页面时,我的内存使用量就会急剧上升,页面不会显示任何结果,加载图标将永远运行。要么是内存泄漏,要么就是我存储这些文件以显示的结果就是这么大

不管有没有人能给我一些JS或Python方面的见解,我相信我能从那里找到如何实现它的方法。只是他妈的分页问题。我认为延迟加载可能是实现这一点的方法,但我开始研究它,它似乎是一个完全不同的野兽。但不管你们提供什么,我洗耳恭听。我真的很感激你能提供的任何帮助

仅使用一个结果页

模板

{%extends'base.html%}
{%load static%}
{%block pagetop%}
{%endblock%}
{%block-appcontent%}
{%csrf_令牌%}
游戏
    {游戏%中游戏的%}
  • {{game.name}}:{{game.id}
  • {%endfor%}
{%endblock%} {%block javascript%} {{block.super}} {%endblock%}
JS

函数createNode(元素){
返回单据.createElement(element);
}
函数附加(父函数,el){
返回父.子(el);
}
设ul=document.getElementById('games');
让url为空https://api.rawg.io/api/games?search=rimworld';
获取(url)
.then((response)=>response.json())
.then(功能(数据){
设dict=[];
让结果=data.results;
控制台日志(结果);
结果。地图(功能(游戏){
口述推({
名称:game.name,
id:game.id,
});
});
让next=data.next;
while(下一个){
url=next;
获取(url)
.then((response)=>response.json())
.then(功能(更多数据){
让结果=更多数据。结果;
结果地图(功能)(更多游戏){
口述推({
name:more_games.name,
id:more_games.id,
});
});
下一步=更多数据。下一步;
});
}
控制台日志(dict);
返回dict.map(函数(obj){
设li=createNode('li'),
h4=createNode('h4');
h4.innerHTML=`${obj.name}:${obj.id}`;
附加(li,h4);
附加(ul,li);
});
})
.catch(函数(错误){
console.log(错误);
});
可能的视图

def find_游戏(请求):
用户输入=request.POST.get('搜索')
url='1〕https://api.rawg.io/api/games?search=%s“%user\u”输入
response=requests.get(url)
data=response.json()
游戏=[]
对于数据中的游戏[‘结果’]:
项目={'name':游戏['name],'id':游戏['id]}
游戏。附加(项目)
request.sessions['data']=数据
返回渲染(请求“search/find_game_id.html”,{'games':games})