一、注册器的说明与使用
在我们编写url时经常会因请求方式不同,而重复编写某条url,而rest_framework中的注册器帮我节省了很多代码
下面介绍一下如何使用
# 利用注册器来实现路由分发 from rest_framework import routers # 导入 router = routers.DefaultRouter() # 实例化对象 router.register('book',views.BookView) # 注册
还需要在urlpatterns中加入
re_path('^',include(router.urls))
还有更多功能如直接查看数据格式等等
二、响应器的使用
响应器的作用就是让浏览器不在返回django rest_framework做的那个网页,而是直接返回数据
使用方法:
1.首先在views导入
from rest_framework.renderers import JSONRenderer # 响应器
2.在视图类中设置,指定返回类
render_classes = [JsonRender]
全都配置好之后再去访问浏览器时就不会在返回页面了
三、分页器的使用
分页器的使用:
- 导入模块 from rest_framework.pagination import PageNumberPagination - 获取数据 books = Book.objects.all() - 创建一个分页器对象 paginater = PageNumberPagination() - 开始分页 paged_books = paginater.paginate_queryset(books, request) - 开始序列化 serialized_books = BookSerializer(paged_books, many=True) - 返回数据 return Response(serialized_books.data)
当我们用到视图类中继承ModelViewSet时需要自己编写分页类
1.首先需要导入模块
from rest_framework.pagination import PageNumberPagination
2.编写分页器
class ThePagination(PageNumberPagination): page_size = 2 # 每次获取的数量 page_query_param = 'page' # url上的page参数 page_size_query_param = 'size' # 临时要取数据的时候,可以在url上加的参数size max_page_size = 4 # 限制最多可以获取数据的多少
3.最后还要在视图类中加入
pagination_class = ThePagination # 分页器
测试一下: