我正在寻找一个访问Django REST API提供的API的智能表示例。 由于我的数据库非常大,因此进行服务器端分页和过滤非常重要。
我的API的JSON响应
{
"count": 11512,
"next": "http://127.0.0.1:8000/api/icd/?page=2",
"previous": null,
"results": [
{ ...
请帮我一点启动,好吗?
答案 0 :(得分:0)
根据rest-framework文档,您可以在settings.py
文件中设置分页样式:
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination',
'PAGE_SIZE': 100
}
您也可以设置分页类并将其设置为您的Views pagination_class
属性:
class LargeResultsSetPagination(PageNumberPagination):
page_size = 1000
page_size_query_param = 'page_size'
max_page_size = 10000
class StandardResultsSetPagination(PageNumberPagination):
page_size = 100
page_size_query_param = 'page_size'
max_page_size = 1000
并查看:
class BillingRecordsView(generics.ListAPIView):
queryset = Billing.objects.all()
serializer_class = BillingRecordsSerializer
pagination_class = LargeResultsSetPagination