python项目_分页功能和分类功能的实现

1.使用rest_framework提供的分页功能

#在当前子应用courses下创建一个分页器的文件paginations.py

from
rest_framework.pagination import PageNumberPagination class CourseListPageNumberPagination(PageNumberPagination): """课程列表分页器""" page_query_param = "page" page_size = 5 max_page_size = 20 page_size_query_param = "size"

2.视图函数中加载声明的分页器

from .models import Course
from .serializers import CourseModelSerializer
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter
from .paginations import CourseListPageNumberPagination

class CourseListAPIView(ListAPIView):
    """课程列表API接口"""
    queryset = Course.objects.filter(is_show=True, is_deleted=False).order_by("orders","-id")
    serializer_class = CourseModelSerializer
    filter_backends = [DjangoFilterBackend,OrderingFilter]
    filter_fields = ('course_category',)
    ordering_fields = ['id', 'students', 'price']
    # 指定分页器
    pagination_class = CourseListPageNumberPagination



##前端进行测试访问http://127.0.0.1:8000/opt/data7/?page=4 意思就是通过url进行传参的



3.测试,通过postman发送请求

urls路由的写法
path("", views.CourseListAPIView.as_view()),
发送的请求格式
#范例
/user/?course_category=1&ordering="-id"
通过url进行传参

 

posted @ 2020-06-21 09:40  jalen-tian  阅读(283)  评论(0编辑  收藏  举报