gpt4 book ai didi

python - 一一获取查询集数据

转载 作者:行者123 更新时间:2023-12-04 18:37:20 24 4
gpt4 key购买 nike

我知道常规 queryset 或迭代器 queryset 方法一次评估并返回整个数据集。

例如,拿这个:

my_objects = MyObject.objects.all()
for rows in my_objects: # Way 1
for rows in my_objects.iterator(): # Way 2

问题

在这两种方法中,所有行都是一次性获取的。在 djago 中是否有任何方法可以从数据库中一一获取查询集行。

为什么这个奇怪的要求

目前我的查询获取让我们说 n 行,但有时我得到 Python and Django OperationalError (2006, 'MySQL server has gone away') .

所以为了解决这个问题,我目前正在使用一个奇怪的 while循环逻辑。所以想知道是否有任何 native 或内置方法,或者我的问题首先是合乎逻辑的!! :)

最佳答案

我认为您正在寻找 limit your query set .

引用上面的链接:

Use a subset of Python’s array-slicing syntax to limit your QuerySet to a certain number of results. This is the equivalent of SQL’s LIMIT and OFFSET clauses.



换句话说,如果你从一个计数开始,你可以循环并根据需要获取切片。
cnt = MyObject.objects.count()
start_point = 0
inc = 5
while start_point + inc < cnt:
filtered = MyObject.objects.all()[start_point:inc]
start_point += inc

当然,您可能需要错误处理更多..

关于python - 一一获取查询集数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495081/

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