1、后台Django代码
def storage(req):
'''
存储图片接口:
1、根据roomid查询出数据
'''
# 从数据库选出所需数据
roomid = req['roomid']
data_list = Memory.objects.filter(roomid=roomid).order_by('-addtime')
# 构造分页器
page_robot = Paginator(data_list, 2)
page_num = req.get('page') # 根据page的值得到对应的数据
try:
data_list = page_robot.page(page_num)
except InvalidPage:
data_list = page_robot.page(1)
except ValueError:
data_list = page_robot.page(1)
except EmptyPage:
data_list = page_robot.page(page_robot.page_num)
except PageNotAnInteger:
data_list = page_robot.page(1)
serializer = MemorySerializer(data_list, many=True).data
context = {"status": "success", "data": serializer}
return context
2、前端组件Vue代码
<template>
<div>
<b-container class="bv-example-row">
<b-row>
<b-col><b-table striped hover :items="items.data"></b-table></b-col>
</b-row>
<b-row>
<b-col>
1、每次点触发一下getGoodsList()函数,改变一下page码调接口
<b-pagination size="md" :total-rows="100" v-model="currentPage" :per-page="10" align="right" @click.native="getGoodsList()"></b-pagination>
<div>第: {{ currentPage }}页</div>
</b-col>
</b-row>
</b-container>
{{ items }}
</div>
</template>
<script>
import axios from 'axios'
export default {
name: "PageLayout",
data(){
return {
roomid: '1',
// 4、定义一个列表存储返回数据
items: [],
// 5、设置默认页码
currentPage: 1,
}
},
mounted(){
// 3、初始化一下接口,这样呢在加载的时候就会自动调用接口
this.getGoodsList();
},
methods: {
// 2、写一个函数调接口getGoodsList
getGoodsList: function() {
axios.get("http://192.168.0.144:9999/skyapi/storage/", {
params: { roomid:this.roomid, page:this.currentPage }
}).then(res => {
this.items = res.data
})
.catch((error) => {
this.msg = error
})
},
}
}
</script>
<style scoped>
</style>