如何在SQL查询中按页面设置分页,我尝试使用django默认分页,但它在我的代码中不起作用,我使用SQL raw-query而不是ORM直接获取数据。我认为另一种方法是使用SQL查询限制或偏移量来设置分页,但当我搜索下一页时,我对url-端点一无所知。
class Order_ListAPIView(APIView):
def get(self,request,format=None):
if request.method == 'GET':
cur,conn = connection()
order_query = ''' SELECT * FROM orders'''
order_detail_query = ''' SELECT * FROM order_details'''
with conn.cursor(MySQLdb.cursors.DictCursor) as cursor:
cursor.execute(order_query)
order_result = cursor.fetchall()
order_data = list(order_result)
...
... #rest_code
...
return Response({"order_data":order_data},status=status.HTTP_200_OK)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)发布于 2020-03-08 01:33:36
我不太熟悉Django,但正如您所说,您自己使用MySQL从DB获取原始数据,因此设置分页应该与将LIMIT $offset, $perpage添加到MySQL查询一样简单……
SELECT * FROM order_details LIMIT 0, 5;例如,这个查询将得到页面1,每页5个页面。要转到第5页,每页5个,它是LIMIT 4*5, 5 = LIMIT 25, 5。如果您想转到37页,每页10页,它将是LIMIT 36*10, 10 = LIMIT 360, 10。
这应该可以解决MySQL部件的分页问题。您将需要设置vars来确定来自用户的page和perpage,可能是通过GET参数。
https://stackoverflow.com/questions/60542319
复制相似问题