Skip to main content
 首页 » 编程设计

python之是否可以获取查询开头的游标,以便查询的 future 运行可以将其用作 end_cursor

2025年05月04日11del

我正在尝试呈现一个以给定模型的前 n 个实体开头的页面,并让该页面定期检查新项目。类似于 Twitter 呈现推文页面,然后在可用时提示您“6 条新推文”。

我目前通过:

query = Item.all() 
query.order("-created") 
query.fetch(100) 
cursor = query.cursor() 
timestamp = time.time() 
# render a page storing cursor and timestamp so it can request for older items 
# & regularly check for newer ones. 

当我收到带有时间戳的更新请求时,我会运行一个查询来过滤掉该时间戳之前的项目。

我想知道是否有如下方法(以及是否会更快):

  • 开始时抓取一个游标,我们称之为 update_cursor
  • 像以前一样获取数据等。

当页面请求更新(并提供 update_cursor)时执行相同的查询,但使用 query.with_cursor(end_cursor=update_cursor) 和 query.run() 而不是 fetch () 以便它捕获我所有的项目,直到我之前开始的那一点。

我试图获取 0 个实体并查看光标,但这只是给了我一个空字符串。

这可能吗(如果可能的话,明显比时间戳方法快)?有什么建议或建议吗?

请您参考如下方法:

如果元素不是位于索引的开头,而是位于游标的末尾?这可以帮助您处于模型的最新实体(唯一我不确定您是否会在查询的最后一个元素之后获得有效游标)。接下来,当您拉取更新时,只需从该游标开始查询并获取最新的实体。

我自己没有尝试过,但它可以工作,试一试,让我知道结果如何。