Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pagination Google云数据存储光标与Google.Cloud.ndb_Pagination_Cursor_Cloud_App Engine Ndb_Datastore - Fatal编程技术网

Pagination Google云数据存储光标与Google.Cloud.ndb

Pagination Google云数据存储光标与Google.Cloud.ndb,pagination,cursor,cloud,app-engine-ndb,datastore,Pagination,Cursor,Cloud,App Engine Ndb,Datastore,我正在使用最新的Google.Cloud.ndb库使用Google云数据存储 我尝试使用以下代码实现分页使用游标。 同样的问题是无法正确获取数据 [1] 要获取数据,请执行以下操作: query_01 = MyModel.query() f = query_01.fetch_page_async(limit=5) 这段代码运行良好,从MyModel中获取了5个实体 我想实现可以与Web前端集成的分页 [2] 获取下一组数据 from google.cloud.ndb._datastore_qu

我正在使用最新的Google.Cloud.ndb库使用Google云数据存储 我尝试使用以下代码实现分页使用游标。 同样的问题是无法正确获取数据

[1] 要获取数据,请执行以下操作:

query_01 = MyModel.query()
f = query_01.fetch_page_async(limit=5)
这段代码运行良好,从MyModel中获取了5个实体 我想实现可以与Web前端集成的分页

[2] 获取下一组数据

from google.cloud.ndb._datastore_query import Cursor
nextpage_value = "2"
nextcursor = Cursor(cursor=nextpage_value.encode()) # Converts to bytes
query_01 = MyModel.query()
f = query_01.fetch_page_async(limit=5, start_cursor= nextcursor)
previouspage_value = "1"
prevcursor = Cursor(cursor=previouspage_value.encode())
query_01 = MyModel.query()
f = query_01.fetch_page_async(limit=5, start_cursor=prevcursor)
[3] 获取上一组数据的步骤

from google.cloud.ndb._datastore_query import Cursor
nextpage_value = "2"
nextcursor = Cursor(cursor=nextpage_value.encode()) # Converts to bytes
query_01 = MyModel.query()
f = query_01.fetch_page_async(limit=5, start_cursor= nextcursor)
previouspage_value = "1"
prevcursor = Cursor(cursor=previouspage_value.encode())
query_01 = MyModel.query()
f = query_01.fetch_page_async(limit=5, start_cursor=prevcursor)
[2]&[3]组代码不获取分页数据,但返回与codebase[1]的结果相同的结果

请注意,我正在使用Python 3并使用 与数据存储交互的最新“google.cloud.ndb”客户端库 我提到了以下链接


我是谷歌云的新手,非常感谢所有能给我的帮助。

首先,在我看来,你似乎希望使用错误的分页方式。您尝试使用数值,而数据存储游标提供基于游标的分页

数据存储不需要传入字节编码的整数值(如1或2),而是需要类似于以下内容的标记:“cjsnwoib3z5lxrlc3rykqssbfvzzxiygicagaomcxiiq3ljbgveyxkicjjjjwatmatmttymgaagaga=”

您可以从对该方法的第一次调用中获得这样一个游标,该方法返回一个元组:

(results,cursor,more)其中results是查询结果的列表,cursor是指向上一个返回结果之后的光标,more指示在返回结果之后是否(可能)有更多结果

其次,应该使用fetch_page()而不是fetch_page_async(),因为第二个方法不会返回分页所需的游标。在内部,fetch\u page()调用fetch\u page\u async()以获取查询结果

第三也是最后一点,我不完全确定使用数据存储提供的分页是否可以使用“上一页”用例。您可能需要通过存储一些游标来手动实现这一点


我希望这会有帮助,祝你好运

首先,在我看来,您希望使用错误的分页方式。您尝试使用数值,而数据存储游标提供基于游标的分页

数据存储不需要传入字节编码的整数值(如1或2),而是需要类似于以下内容的标记:“cjsnwoib3z5lxrlc3rykqssbfvzzxiygicagaomcxiiq3ljbgveyxkicjjjjwatmatmttymgaagaga=”

您可以从对该方法的第一次调用中获得这样一个游标,该方法返回一个元组:

(results,cursor,more)其中results是查询结果的列表,cursor是指向上一个返回结果之后的光标,more指示在返回结果之后是否(可能)有更多结果

其次,应该使用fetch_page()而不是fetch_page_async(),因为第二个方法不会返回分页所需的游标。在内部,fetch\u page()调用fetch\u page\u async()以获取查询结果

第三也是最后一点,我不完全确定使用数据存储提供的分页是否可以使用“上一页”用例。您可能需要通过存储一些游标来手动实现这一点

我希望这会有帮助,祝你好运