gpt4 book ai didi

python - Django 分页。如果我有 100 万行怎么办?

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:38 24 4
gpt4 key购买 nike

官方 Django 文档给了我们这样的内容:

from django.core.paginator import Paginator
my_list = MyModel.objects.all()
p = Paginator(my_list, 10)

但是。如果我必须对 100 万行进行分页怎么办?每次我想查看单个分页页面时,使用 MyModel.objects.all() 加载 100 万行并不是那么有效。

有没有更有效的方法来做到这一点而不需要调用 objects.all() 来进行简单的分页?

最佳答案

MyModel.objects.all() 实际上并未加载所有对象。它可能会加载所有这些,但在您实际执行需要对其进行评估的操作之前,它不会执行任何操作。

Paginator 几乎肯定会对该查询集添加一些限制。例如,使用数组切片表示法,它可以创建一个新对象,如下所示

my_list = MyModel.objects.all()
smaller_list = my_list[100:200]

这将创建一个不同的查询集,它只会从数据库中请求 100 个项目。或者在原始查询集上调用 .count(),这只会指示数据库返回表中的行数。

你必须做一些需要检索所有对象的事情,比如调用

list(my_list)

将 1000000 行从数据库传输到 Python。

关于python - Django 分页。如果我有 100 万行怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23819423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com