app-engine-ndb相关内容
我喜欢数据存储的简单性、可扩展性和易用性;新的 ndb 库中的增强功能非常棒. 据我了解数据存储最佳实践,当匹配查询的项目数量很大时,不应编写代码来提供匹配查询结果的项目和/或页数;因为这样做的唯一方法是检索所有资源密集型的结果. 但是,在许多应用程序中,包括我们的应用程序,人们普遍希望看到匹配项的计数并为用户提供导航到这些结果的特定页面的能力.如文章 对大型数据集进行分页.为了支持推
..
对于以下(损坏的)函数,如果实体被创建或更新,我想返回 True,否则返回 False.问题是我不知道 get_or_insert() 是获取了现有实体还是插入了实体.有没有简单的方法来确定这一点? class MyModel(ndb.Model):def create_or_update(key, data):"""如果实体被创建或更新,则返回 True,否则返回 False."""当前 =
..
我有一个 ndb 模型类: 类游戏(ndb.Model):游戏ID = ndb.IntegerProperty()游戏名称 = ndb.StringProperty() 有什么方法可以快速删除存储在该类的数据库中的所有实体?类似于 Game.deletAll() 解决方案 不,但你可以很容易地做到这一点,如: from google.appengine.ext import ndb
..
对不起,如果这个问题太简单了;我才刚上九年级. 我正在尝试了解 NoSQL 数据库设计.我想设计一个谷歌数据存储模型,最大限度地减少读/写次数. 这是一个关于一对多关系中的博文和评论的玩具示例.哪个更有效 - 将所有评论存储在 StructuredProperty 中还是在 Comment 模型中使用 KeyProperty? 同样,目标是最大限度地减少对数据存储的读/写次数.您
..
我想听听您对使用 Python NDB 有效实现一对多关系的看法.(例如人员(一个)到任务(多个)) 据我所知,有三种实现方式. 使用“父"参数 使用“重复"结构化属性 使用“重复"键属性 我通常会根据以下逻辑选择一种方式,但对您来说有意义吗?如果你有更好的逻辑,请教我. 使用“父"参数 这些实体之间需要进行交易操作 这些实体之间需要双向引用 强烈的“亲子"关
..
我的问题是关于在 ndb 中建模一对多关系.我知道这可以通过(至少)两种不同的方式完成:使用重复的属性或使用“外键".我在下面创建了一个小例子.基本上我们有一个可以有任意数量标签的文章.让我们假设一个标签可以被删除,但在添加后不能更改.我们还假设我们不担心交易安全. 我的问题是:建模这些关系的首选方法是什么? 我的考虑: 方法 (A) 需要为每个添加到一个标签的标签写入两次文章(
..
我正在利用 ndb 的 to_dict 方法将对象的属性转换为 python dict.据我所知,根据文档,此方法在字典中不包含对象的键或父项: https://developers.google.com/appengine/docs/python/ndb/modelclass#Model_to_dict 但是,对于我的情况,我需要将密钥放在 dict 中.我更喜欢利用内置方法并将其子
..
在设计表单和处理程序时,我如何使用 ndb.StructuredProperty(repeated = True) 属性?考虑这个例子: 我有 3 种 ndb.Model 类型:SkilledPerson、他的教育和他的(工作)经验.后两者是 SkilledPerson 的 StructuredProperty 类型. class SkilledPerson(ndb.Model):名称 =
..
我正在使用谷歌云端点并希望能够扩展 User 类,以便对 get_current_user 的调用将返回一个 AppUser> 具有我自己的额外属性的对象. class AppUser(--?--): # 我应该在这里放什么gcm = ndb.StringProperty()def send_notification(self):# 用 gcm 做点什么...经过 我怎样才能实现这样的事情?还
..
假设我有一个 web 应用程序,它可以让用户保存他们的爱好.所以我有这样的: class Hobby(ndb.Model):爱好名称 = ndb.StringProperty() 用户只需使用此表单创建 Hobby 实体:
..
如何获取 nbd.Model 的值?我想返回一个由几个字段组成的描述,但我无法让它工作.这是我的班级代码: 类用户(ndb.Model):名称 = ndb.StringProperty()电子邮件 = ndb.StringProperty()@类方法def get_description(self):# return "科比布莱恩特 (kobe.bryant@lakers.net)"返回 se
..
我有一个简单的“观察"类: from google.appengine.ext import ndb类观察(ndb.Model):remote_id = ndb.StringProperty()维度 ID = ndb.IntegerProperty()指标 = ndb.StringProperty()timestamp_observed = ndb.StringProperty()timest
..
我有一个咨询页面,其中列出了数据存储中的咨询.列表循环是这样的: {% for Consults %}{{consult.consult_date }} {{consult.consult_time }} {{consulting.patient_first }} {{consult
..
我有这样的结构:有章节的书(祖先=书)有页面(祖先=章) 我很清楚,要按 ID 搜索章节,我需要按祖先查询搜索书.我今天了解到,如果我拥有所有密钥,我可以直接检索实体,而无需先获取书,然后是章节,然后是页面,方式如下: page_key = ndb.Key('Book', long(bookId), 'Chapter', long(chapterId), 'Page', long(page
..
我只想在我的一个查询中禁用上下文缓存.我以为我可以这样做: MyModel.query(ancestor=user.key).fetch(100, options=ContextOptions(use_cache=False, use_memcache=False)) 或 MyModel.query(ancestor=user.key).fetch(100, config=ContextOp
..
我想对数据存储区中的实体进行级联删除.我的意思是所有孩子和间接孩子也将被删除.我最初认为这将是默认行为,但不知何故它不是...... 我的想法是这样的: ndb.delete_multi(ndb.Model.query(ancestor=key).iter(keys_only = True)) 但是Model应该是通配符,因为实体可以是几个类的父类... 我还想在删除实体时删除 B
..
假设我从用户输入的 websafe url 创建一个密钥 key = ndb.Key(urlsafe=some_user_input) 如何检查 some_user_input 是否有效? 我当前的实验表明,如果 some_user_input 无效,上面的语句将抛出 ProtocolBufferDecodeError (Unable to merge from string.) 异常,
..
找不到之前问过的这个具体问题.在使用投影查询与完整实体查询时,App Engine 的 NDB 如何处理缓存? 例如,如果我先进行投影查询.. MyModel.query().get(projected=['name']) ...然后接下来做一个常规查询... MyModel.query().get() ...我会得到什么?完整的实体?如果是这样,NDB 是否自动缓存了第一个查询的任
..
我有这个数据模型(我制作了它,所以如果有更好的方法,请告诉我).基本上我有Club,可以有很多Courses.现在我想知道一个俱乐部的所有members 和instructors.members 和 instructors 存储在 Course 模型中,并且 Club 有对它们的引用.看代码.. class 课程(ndb.Model):...讲师键 = ndb.KeyProperty(kind=
..
我正在再次调查 TransactionFailedError 的意外发生(这些数据存储实体上的争用过多... 在这种情况下,代码仅读取被归咎于争用问题的实体组. 设置 GAE 标准环境,带有 NDB(SDK 1.9.51)的 Python 2.7.我设法在一个孤立的应用程序(只有我作为用户)中观察到错误,其中在任务队列中执行相同的请求处理程序,并且对下面提到的实体组的读/写访问仅由该处
..