继承类的区别
modelviewset的使用
-
可以完成增删改查,简化代码,但是代码中不能有复杂的逻辑,如需要复杂的逻辑需要使用APIView
-
在试图中使用
- 导包
from rest_framework import viewsets - 调用
先实例化 要获取的数据 然后 使用选择序列化器
3.在url中配置路由-
导包
from rest_framework.routers import DefaultRouter -
实例化
router = DefaultRouter() -
注册路由
router.register(“user”,UserModelView #所对应的视图函数名) -
最后添加到路由器中
urlpatterns = [
path("",include(router.urls)),
]
- 导包
4.modelviewset的排序,分页,过滤
-
过滤器只能用在ModelViewSet中
分页器 可以用在APIView 和ModelViewSet 中
第一步 下载第三方包
pip install django-filter
第二步 在全局或局部 进行设置
-
过滤器排序联合使用
-
导入
from rest_framework.filters import OrderingFilter
from django_filters.rest_framework import DjangoFilterBackend
-
设置需要排序和过滤的条件
ordering_fields = (“age”,“hight”) #以 age和hight 字段进行排序
filter_fields = (“username”,“age”,“home”)#以 username和age,home 字段 为过滤条件
-
使用方法:
http://127.0.0.1:8000/dm3/user/?ordering=hight&home=“河南”
-
分页器
- 先进行配置在setting的REST_FRAMEWORK中配置全局分页
‘DEFAULT_PAGINATION_CLASS’: ‘rest_framework.pagination.PageNumberPagination’,
- 每页返回数量
‘PAGE_SIZE’: 10, # 默认 None
-
进行 导包
from rest_framework.pagination import PageNumberPagination
-
再进行设置
class PageNum(PageNumberPagination):
page_size_query_param = "page_size" 分页内容的数量
page_query_param = "page" 分页的哪一页
最后再调用