流程如下:
class UpImg(models.Model):
name = models.CharField(max_length=30,verbose_name='图片名')
img = models.ImageField(upload_to='upload')
def __str__(self):
return self.name
class Meta:
db_table = 'upimg'
- 添加完数据进行序列化操作:
- serializer.py中:
from rest_framework import serializers
from .models import *
class ImageSerializer(serializers.ModelSerializer):
class Meta:
model = UpImg
fields = '__all__'
from .serializer import ImageSerializer
class ShowImage(APIView):
def get(self,request,pindex):
img = UpImg.objects.all()
pages = Paginator(img,1)
page_list = list()
for i in pages.page_range:
page_list.append(i)
paged = pages.page(pindex)
img_ser = ImageSerializer(paged,many=True)
return Response({
'code':200,
'sum_page':pages.num_pages,
'page_list':page_list,
'data':img_ser.data
})
from django.urls import path
from .views import *
app_name = 'moapp'
urlpatterns = [
path('showimage/<pindex>',ShowImage.as_view(),name='showimage'),
]
<template>
<div>
<table border="1">
<tr>
<th>图片名</th>
<th>图片</th>
</tr>
<tr v-for="item in img_list">
<td>{{ item.name }}</td>
<td><img :src="'http://127.0.0.1:8000' + item.img" alt="" width="100" height="150"></td>
</tr>
</table>
<div>
<button v-for="i in page_list" @click="get_page(i)">{{i}}</button>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
data(){
return{
img_list:[],
page_list:[],
}
},
mounted() {
axios({
url:'http://127.0.0.1:8000/mo/showimage/1',
method:'get',
}).then(res=>{
console.log(res)
if(res.data.code==200){
this.page_list = res.data.page_list
this.img_list = res.data.data
}
})
},
methods:{
get_page(e){
var page_number = e
console.log(page_number)
axios({
url:'http://127.0.0.1:8000/mo/showimage/' + page_number,
method:'get',
}).then(res=>{
this.page_list = res.data.page_list
this.img_list = res.data.data
})
}
}
}
</script>