Mysql 如何在SQL查询中按页面设置分页?

Mysql 如何在SQL查询中按页面设置分页?,mysql,sql,django,django-rest-framework,Mysql,Sql,Django,Django Rest Framework,如何在SQL查询中按页面设置分页,我尝试使用django默认分页,但在我的代码中不起作用,我使用SQL原始查询而不是ORM直接获取数据。我认为另一种方法是使用SQL查询限制或偏移量设置分页,但我在搜索下一页时不知道url端点 class Order_ListAPIView(APIView): def get(self,request,format=None): if request.method == 'GET': cur,conn = con

如何在SQL查询中按页面设置分页,我尝试使用django默认分页,但在我的代码中不起作用,我使用SQL原始查询而不是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)

我对Django不太熟悉,但正如您所说,您正在使用MySQL从数据库中获取原始数据,因此要设置分页,只需将
LIMIT$offset,$perpage
添加到MySQL查询中即可

SELECT * FROM order_details LIMIT 0, 5;
例如,这个查询将得到第1页,每页5页。要进入第5页,每页5个,它是
限制4*5,5
=
限制25,5
。如果你想以每页10的速度进入第37页,那将是
限制36*10,10
=
限制360,10


这将解决MySQL部件的分页问题。您需要设置VAR以从用户(可能是从GET参数)确定
page
perpage

这是否回答了您的问题?我在这个链接@mkpateth中没有得到任何帮助使用
sql
而不是
ORM
。因为我的高级开发人员决定使用sql查询方法查看request.method==“get”:内部get()方法很奇怪