在 Django 中,您可以使用原生 SQL 查询来实现分页,下面是一个示例:
from django.db import connection
def my_view(request):
limit = 10 # 每页的记录数
page = request.GET.get('page') # 获取请求的页码
offset = (page - 1) * limit # 计算偏移量
with connection.cursor() as cursor:
cursor.execute("""
SELECT * FROM myapp_mymodel LIMIT %s OFFSET %s
""", [limit, offset])
rows = cursor.fetchall()
# 使用 rows 进行您需要的操作
# ...
return HttpResponse('Page %s' % page)
需要注意的是,在使用原生 SQL 查询时,需要使用 connection
对象来创建数据库游标,并执行查询。查询结果可以使用 fetchall
方法获取。
请注意,在生产环境中使用原生 SQL 查询存在安全风险,因为可能存在 SQL 注入攻击。因此,在使用原生 SQL 查询时请务必对所有输入进行严格的验证。