ElementUI 分页+django rest framework

本文介绍了一种前后端联合实现分页的方法,通过前端Vue和后端Django的配合,实现了动态分页功能。具体包括前端代码示例、后端Django配置及数据库操作。

一、概述

在之前的文章中,链接如下:https://www.cnblogs.com/xiao987334176/p/14313471.html

介绍了ElementUI 分页,前端请求一次接口,获取所有数据,由ElementUI 分页组件实现分页,也就是说由前端来完成了分页功能。

但是,在实际项目中,不可能一次性返回所有数据,比如几十万条数据。

比较理想的方案是,前端配合后端,一起来实现分页功能。大概思路如下:

1. 默认访问api,比如:http://127.0.0.1:8000/api/book/list/ ,接口返回10条数据。

2. 前端点击页码时,比如第二页,请求接口:http://127.0.0.1:8000/api/book/list/?page=2,这里的page=2,表示当前页码数,接口返回10条数据。

3. 后面的以此类推,总之,每点击一次,请求一次接口,返回10条数据。

效果如下:

二、前端代码

test.vue

<template>
  <div>
    <!-- 表格 -->
    <el-table :data="tableData.list" style="width: 100%">
      <el-table-column
        prop="id"
        label="编号"
        width="120">
      </el-table-column>           <!--设置列标-->
      <el-table-column
        prop="title"
        label="书名"
        width="120">
      </el-table-column>
      <el-table-column
        prop="price"
        label="价格"
        width="120">
      </el-table-column>
      <el-table-column
        prop="pub_date"
        label="出版日期"
        width="200">
      </el-table-column>
      <el-table-column
        prop="publish"
        label="出版社"
        width="120">
      </el-table-column>
    </el-table>
    <!-- 分页器 -->
    <div class="block" style="margin-top:15px;">
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage"
        :page-sizes="[10, 15, 20, 25]"
        :page-size="pageSize"
        layout="total, prev, pager, next, jumper"
        :total="total">
      </el-pagination>
    </div>
  </div>
</template>

<script>
  import axios from 'axios'

  export default {
    name: "test2",
    data() {
      return {
        tableData: {},
        currentPage: 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值