app-engine-ndb相关内容

Google App Engine 数据存储实体.效率和结构

我有兴趣了解 Google App Engine Datastore 实体的最佳结构,以提高速度和成本效率. 以一个关于俱乐部的应用为例. 结构 A: 每个俱乐部的单个 ndb.Model 实体,具有:姓名、ID、地址、联系人、标签、评论、图片等 结构 B: 每个俱乐部有多个实体,其 KeyProperty 引用俱乐部. ndb.Model 实体 A. 名称和 ..

将 ndb 自定义属性中的值解析为 None

我有一个自定义的 ndb 属性子类,它应该将空字符串解析为 None.当我在 _validate 函数中返回 None 时,None 值将被忽略并且仍然使用空字符串. 我可以以某种方式将输入值转换为 None 吗? class BooleanProperty(ndb.BooleanProperty):def _validate(self, value):v = unicode(value).l ..
发布时间:2021-11-16 20:02:14 Python

NDB 中的 TextProperty 字段获取“=";附加在每一行之后

我有一个非常奇怪的案例,我无法调试一天. 在我的前端,我有带有 textarea 和提交按钮的表单.提交时,textarea 字段被保存为 ndb.TextProperty()当我提交多行文本时,数据库中的文本会在每一行上获得 = 或 =20 字符.起初我以为它们是随机插入的,但似乎每 76 个字符都会得到一个 = 字符. 这真的很难调试,因为在我的本地主机实例上它工作得很好,但在部署 ..
发布时间:2021-11-16 20:02:10 其他开发

使用 TaskQueue 和 Datastore 找出一组任务完成时间

我有一个推送任务队列,我的每个作业都包含多个类似的 TaskQueue 任务.这些任务中的每一个都需要不到一秒钟的时间来完成,并且可以将新任务添加到队列中(它们也应该完成以认为作业已完成).任务结果写入数据存储. 目标是了解工作何时完成,即所有任务都已完成. 写入非常频繁,我无法将结果存储在一个实体组中.有什么好的解决方法吗? 解决方案 在类似的上下文中,我使用了一个基于 me ..

在 GAE 中与祖先一起工作

我只希望有人向我证实我正在以正确的方式做事. 我有这样的结构:有章节的书(祖先=书)有页面(祖先=章) 我很清楚,要按 ID 搜索章节,我需要按祖先查询搜索书. 我的疑问是:我是否需要所有的连锁书章节来搜索页面? 例如(我在 NDB): class Book(ndb.Model):# 按id搜索@类方法def by_id(cls, id):返回 Book.get_by_i ..
发布时间:2021-11-16 20:02:00 Python

如何从数据存储中获取最新和相邻的记录?

我有电影数据存储,那里的每条记录都有自己的 ID 作为键名,如下所示: 1234532453121547887334543 我想允许用户一一浏览电影.首先,应该显示最新的电影(数据库具有带有日期和时间的字段 added).如何从数据存储中获取它?更新.我可以这样做: movies = Movies.query()电影.订单(-电影.添加)对于 movie.fetch(1) 中的电影:self ..

将 StructuredProperty 添加到 NDB 中的模型

(想不出更好的标题:S) 所以我最近从 db 更改为 ndb 并且我无法让一个部分工作.我有这个包含章节的教程模型,所以我使用“ndb.StructuredProperty"将模型章节与教程相关联.我可以毫无问题地创建教程和章节,但我无法将章节指向教程. 教程模型: class 教程(ndb.Model):标题 = ndb.StringProperty(required=True)演 ..
发布时间:2021-11-16 20:01:49 Python

如何检查 NDB 模型是否有效

我有一个模型类,如: class Book(ndb.Model):标题 = ndb.StringProperty(required=True)作者 = ndb.StringProperty(required=True) 我有一些使用这个的代码: book = Book()印刷书>>书()book_key = book.put()>>BadValueError:实体具有未初始化的属性:作者、 ..
发布时间:2021-11-16 20:01:39 Python

Google App Engine - 无法更新预算

我在我的项目中启用了计费,甚至支付了 10 美元只是为了测试这个过程(它有效).但是我无法在 google 应用引擎仪表板上更改我的每日预算. 我转到“结算状态"部分. 我正在输入新的每日预算并点击“提交"按钮. 我收到信息量不大的错误:“处理请求时出错". 所以我无法更新我的预算,而且我的配额已经超过了几个小时.我的用户收到错误,我正在赔钱,没有任何联系官方 Google 支持的 ..

在继续之前等待数据存储更新

我正在开发一个轻量级应用程序,我有很多情况是用户提交表单,表单数据被处理并推送到数据存储区,然后用户被重定向到一个页面,显示一些相同的数据.用户在数据存储更新之前到达页面的情况经常发生,因此他们会看到旧数据.有没有办法让应用程序在继续之前等待数据存储更新?明显的hacky 解决方案是调用sleep(1),但这显然不理想,并且比实际更新花费的时间更长. 解决方案 只要得到 key .put( ..

GAE Python NDB .put 在开发中不同步(但在生产中有效)?

下面应该创建一个 Counter 模型并使用(延迟)任务将计数器增加到 10.访问 '/' 应该创建一个 Counter 对象,count = 10.这发生在生产中.在开发中(本地主机)创建了多个 Counter 对象,最大为 10: 我怀疑这是因为 put 在开发中不是同步的(但似乎总是在生产中).有没有办法让它们同步? 下面的代码片段: class Counter(ndb.Mod ..

如何在测试中清除/使 NDB 缓存无效

我有一个带有实例属性的简单 NDB 模型,它是不是 NDB 属性.我想测试当实体被保存并从数据存储中检索时属性值是否丢失. 现在检索实体时,它与已放入数据存储的实例相同. 有没有办法以编程方式清除/无效memcache 和 NDB 内存缓存? 示例是 pytest 测试,抱歉. from google.appengine.ext import testbed, ndb类用户(n ..
发布时间:2021-11-16 20:01:19 Python