大佬教程收集整理的这篇文章主要介绍了drf之分页异常处理自动接口文档,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1)-PagenumberPagination:普通分页
2)-LimitOffsetPagination:偏移分页
3)-cursorPagination:游标分页
1) APIView
2) GenericAPIView+ListModelmixin
1)-page_size = api_setTings.PAGE_SIZE # 每页显示多少条
2)-page_query_param = 'page' # 查询参数
3)-page_size_query_param = size # 查询的时候指定每页显示多少条
4)-max_page_size = 10 # 每页最多显示多少条
1)-定义一个类,继承PagenumberPagination
2)-重写四个属性
3)-在继承了GenericAPIView+ListModelmixin视图类中配置
pagination_class = MyPagenumberPagination
4)-查询
http://127.0.0.1:8000/students/?page=1&size=5
1)-default_limit = api_setTings.PAGE_SIZE # 默认条数
2)-limit_query_param = 'limit' # 查询时,指定查询多少条
3)-offset_query_param = 'offset' # 查询时,指定的起始位置是哪
4)-max_limit = None # 查询时,最多返回多少条
1)-定义一个类,继承LimitOffsetPagination
2)-重写四个属性
3)-在继承了GenericAPIView+ListModelmixin视图类中配置
pagination_class = MyLimitOffsetPagination
4)-查询
http://127.0.0.1:8000/students/?limit=100&offset=1
1)-cursor_query_param = 'cursor' # 查询的时候,指定的查询方式
2)-page_size = api_setTings.PAGE_SIZE # 每页显示多少条
3)-ordering = '-created' # 排序方式
4)-page_size_query_param = size # 查询的时候指定每页显示多少条
5)-max_page_size = None # 每页最多显示多少条
1)-定义一个类,继承cursorPagination
2)-重写五个属性
3)-在继承了GenericAPIView+ListModelmixin视图类中配置
pagination_class = MycursorPagination
4)-查询
http://127.0.0.1:8000/students/?cursor=cD0xNQ%3D%3D
1)-新建一个类,继承普通分页,
2)-重写四个属性
3)-视图类写法如下
class studentApiView(APIView):
def get(self,request):
student_list=student.objects.all()
page=MyPagenumberPagination() # 实例化得到对象
# 只需要换不同的自定义分页类即可使用不同的分页器
res=page.paginate_queryset(student_list,request,self) # 开始分页
ser=studentserializer(res, many=TruE)
return page.get_paginated_response(ser.data) # 返回数据
# 统一接口的返回方式,即便视图函数执行出错。
1)-写一个函数
def common_exception_handler(exc, context):
response = exception_handler(exc, context)
if response is None:
response = Response({'code':999,'detail': '未知错误'}, status=status.http_500_INTERNAL_SERVER_ERROR)
return response
2)-在setTing中配置
REST_FRAMEWORK = {
'EXCEPTION_HANDLER':'app01.utils.common_exception_handler'
}
class APIResponse(ResponsE):
def __init__(self, code=100, msg='成功', data=None, status=None, headers=None, content_type=None, **kwargs):
Dic = {'code': code, 'msg': msg}
if Data:
Dic['data'] = data
Dic.update(kwargs) # 这里使用update
super().__init__(data=Dic, status=status,
template_name=None, headers=headers,
exception=false, content_type=content_typE)
return APIResponse(code=100, msg='查询成功', data=ser.data, count=200, next='http://wwwa.asdfas')
coreapi,swagger
1) 在路由中 from rest_framework.documentation import include_docs_urls path('docs/', include_docs_urls(title='图书管理系统api'))2) 在配置文件中 REST_FRAMEWORK = { 'DEFAULT_scheR_329_11845@A_CLASS': 'rest_framework.scheR_329_11845@as.coreapi.AutoscheR_329_11845@a', }3) 写视图类(需要加注释) class BookListCreateView(ListCreateAPIView): """ get: 返回所有图书信息. asdfasfda post: 新建图书. """ queryset = student.objects.all() serializer_class = studentserializer4) 只需要在浏览器输入,就可以看到自动生成的接口文档() http://127.0.0.1:8000/docs/
以上是大佬教程为你收集整理的drf之分页异常处理自动接口文档全部内容,希望文章能够帮你解决drf之分页异常处理自动接口文档所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。