NDB模型中的游标实现不起作用

问题描述 投票:0回答:2

数据库模型

嗨,需要有关如何在NDB模型中使用游标功能的建议。我能够在DB模型中使用with_cursor,但在NDB模型中不可用:

数据库模型

       def myDBfn(self):                       
             cursor_from_url = self.request.get('cursor')            
             logging.info("Cursor in start is: {}".format(cursor_from_url))             
             process_date = util_misc.get_start_date_from_day_param(self)            
             gql_query_text = 'Select * From DummyTable' 
            #Execute query
            query_o = db.GqlQuery(gql_query_text, process_date)            

            if cursor_from_url:                
                query_o.with_cursor(cursor_from_url)                
                BATCH_SIZE = 500
                results = query_o.fetch(BATCH_SIZE)
            else:                
                BATCH_SIZE = 1                
                results = query_o.fetch(BATCH_SIZE)

            if not results:
                logging.info("pref_email_update_task: all done")
                return                     

            logging.info("Exiting myDBfn....")
        return

NDB模型

        def myNDBfn(self):          
            cursor_from_url = Cursor(urlsafe=self.request.get('cursor'))                                
            logging.info("Cursor in start is: {}".format(cursor_from_url))                            

            gql_query_text = 'Select * From TestSequences' #Define query conditions here            

            #Execute query            
            query_o = ndb.gql(gql_query_text)            
            if cursor_from_url:       
                query_o.fetch_page(5,start_cursor=cursor_from_url)                
                BATCH_SIZE = 500
                results = query_o.fetch(BATCH_SIZE)
            else:                                
                BATCH_SIZE = 1             
                results = query_o.fetch(BATCH_SIZE)

            if not results:
                logging.info("feed_sequence_update_second_task: all done")
                return                     
            logging.info("result is {}".format(results))   
            logging.info("Exiting myNDBfn....")
        return 

但是在NDB模型中,cursor_from_url给出了错误:raise datastore_errors.BadValueError('invalid cursor')] >>请指教!!!!!

DB模型嗨,需要有关如何在NDB模型中使用游标功能的建议。我能够在DB模型中使用with_cursor,但在NDB模型中不可用:DB模型def myDBfn(self)... ...

google-app-engine google-cloud-platform app-engine-ndb google-app-engine-python
2个回答
1
投票

我找到了一个修复程序,但不确定这是否是在NDB Model中使用游标的正确方法:def feed_sequence_update_alltime(self):


0
投票

编辑-我重写了答案,因为我误读了您的代码。

© www.soinside.com 2019 - 2024. All rights reserved.