django前后端分离使用分页

参考原链接:https://blog.csdn.net/qq_37605109/article/details/124514037

这里添加了keyword参数,可以在分页的基础上继续过滤

views.py

from django.forms import model_to_dict
from django.core.paginator import Paginator
from django.views import View
from django.http import JsonResponse

from .models import Blog


class BlogListView(View):
    def get(self, request):
        page = request.GET.get('page', 1)  # 获取第几页
        limit = request.GET.get('limit', 2)  # 每页有多少条数据
        keyword = request.GET.get('keyword', "")

        all_count = Blog.objects.filter(name__icontains=keyword)
        paginator = Paginator(all_count, limit)
        page_1 = paginator.get_page(page)
        data_list = []
        for i in page_1:
            mode_to = model_to_dict(i, exclude='img')  # exclude这个是转字典的时候去掉,哪个字段,就是不给哪个字段转成字典
            data_list.append(mode_to)

        data = {'code': 0, "msg": '操作成功', "data": data_list, 'count': paginator.count}
        return JsonResponse(data)

urls.py

from django.urls import path, include

from . import views

urlpatterns = [
    path('bloglist/', views.BlogListView.as_view())
]

浏览器请三种请求返回结果:

猜你喜欢

转载自blog.csdn.net/qq_37140721/article/details/129407997