【发布时间】:2019-11-25 14:07:49
【问题描述】:
我有问题。我在烧瓶应用程序中有一个休息 api。应用程序连接到存储 10k 用户的数据库。我需要做一些类似分页的事情。例如,我想获取:100 个用户的列表,从 1 到 100,然后获取到下一页的 URL,用户从 101 到 200 等。我提出了这样的 axios 请求:
document.getElementById('showUserInputForm').addEventListener('submit', performGetRequest1);
function performGetRequest1(){
var start = document.getElementById('starting').value;
var limit = document.getElementById('limit').value;
var resultElement = document.getElementById('getResult1');
resultElement.innerHTML = '';
axios.get('http://127.0.0.1:5000/users/page', {
params: {
start:start,
limit:limit
}
})
.then(function (response) {
resultElement.innerHTML = generateSuccessHTMLOutput(response);
})
.catch(function (error) {
resultElement.innerHTML = generateErrorHTMLOutput(error);
});
}
此代码返回 json:
{
"limit": 100,
"next": "users/page?start=200&limit=100",
"previous": "users/page?start=1&limit=99",
"results": [
{
{
"id": 101,
"password": "hicqjjzxftvq",
"username": "jclkoxgwgvvw"
},
{
"id": 100,
"password": "xtitexyetpwg",
"username": "uwerzuwnxkju"
},
我如何使用这些下一个/上一个链接来制作 按钮?或者任何想法如何制作它?
【问题讨论】:
-
所以基本上你是在问如何更改链接的
href?您的问题确实与分页无关。 -
它不会是 href - 我假设他不希望发生导航事件,因为它看起来像 generateSuccessHTMLOutput(response) 正在从项目列表中创建 HTML填充到结果元素中。我认为他在问如何存储返回的上一个和下一个 URL,以及如何将它们与一个按钮相关联,以便在单击任一 URL 时知道使用哪个 URL(无需离开页面)。
-
@MrSzegerege NelisV 的回答对你有用吗,还是你还在寻找解决方案?
-
如果它仍然没有得到答复,我会为您制作一个 codepen 示例,以确保我们可以运行它。
-
@MrSzegerege 好吧,我建立在 NelisV 的答案之上。看看这个 JSFiddle。忽略脚本部分中 nextPage 函数下方的所有内容 - 我制作了一个假的 axios,以便我们可以保持它看起来相似。取消注释我评论的部分并将其放入您的环境中。应该发生的是当页面首次加载时,初始 URL (/users/page) 被命中。当您收到响应时,我们将变量存储在 nextUrl 和 previousUrl 中。然后,当您单击任一箭头时,我们检索该 URL 并告诉 performGetRequest1 将其用于 API 调用。 jsfiddle.net/graneyc8/7
标签: javascript python flask pagination axios