问题标签 [google-cloud-datastore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1506 浏览

python - 从 GAE 中的模型文件导入类的问题

我对 python 很陌生,在简要介绍了 python + Google 应用引擎之后,我开始着手一个试点项目。我已将 2 个实体 UserDetails 和 PhoneBook 与数据批量加载到应用程序引擎上。现在在我的 UI 中,我尝试首先输入用户名,然后查询它以从 UserDetails 中获取用户 ID,然后使用检索到的用户 ID 查询电话簿以获取他的电话簿条目。这是我的 UI 代码,

问题是我在日志中收到此错误,即 GAE 无法从模型中导入 UserDetails/phone 类,

当我删除from models import UserDetails,PhoneBook并使用时import models,我得到,

这是我的 models.py 文件,我在其中定义了 UserDetails 和 PhoneBook 类。我已将此文件存储在根目录中。

作为 python 新手,我无法弄清楚为什么无法从我的 models.py 文件中导入我的类,以及如何从 to 设置/获取post(self)user_name get(self)

如果我很天真,请原谅我,但如果您能帮助我正确设置我的代码,我们将非常感谢您的帮助。

谢谢。

0 投票
4 回答
7174 浏览

google-app-engine - 您将如何为 Twitter 等社交网站设计 AppEngine 数据存储?

我想知道设计社交应用程序的最佳方式是什么,其中成员使用 Google AppEngine 进行活动并关注其他成员的活动。

更具体地说,假设我们有这些实体:

  • 有朋友的用户
  • 代表用户操作的活动(假设每个都有一个字符串消息和一个对其所有者用户的 ReferenceProperty,或者它可以通过 appengine 的密钥使用父关联)

困难的部分是关注您朋友的活动,这意味着汇总您所有朋友的最新活动。通常,这将是活动表和您的朋友列表之间的连接,但这在 appengine 上不是一个可行的设计,因为没有连接模拟它需要启动 N 个查询(其中 N 是朋友的数量),然后在内存中合并 -非常昂贵,可能会超过请求期限......)

我目前正在考虑使用收件箱队列来实现这一点,其中创建新活动将触发一个后台进程,该进程会将新活动的密钥放入每个以下用户的“收件箱”中:

  • 获取“所有关注 X 的用户”是一个可能的 appengine 查询
  • 对基本上存储(用户,活动密钥)元组的新“收件箱”实体的批量输入不是非常昂贵。

我很高兴听到有关此设计的想法或替代建议等。

0 投票
1 回答
611 浏览

python - 数据存储日期时间属性可迭代?

我有模特

我需要last_update_date为特定用户检索。它工作得很好,我可以检索这个值,我什至可以将它传递给另一个变量

当我尝试将其分配给

这是在任何循环之外完成的,所以我不明白为什么它说 datetime 不可迭代。我收到的错误消息是

回溯(最近一次通话最后):文件“C:\Program Files (x86)\Google\google_appengine\google\appengine\ext\webapp__init__.py”,第 507 行,通话中 handler.get(*groups) 文件“C:\Users\mklich\workspace\google_contacts_webapp\src\contacts-list.py”,第 266 行,在 get listc = checkUserPrivateContacts(user) 文件“C:\Users\mklich\workspace \google_contacts_webapp\src\contacts-list.py",第 189 行,在 checkUserPrivateContacts feed = contacts.GetContactsFeed(feed_query.ToUri()) 文件“C:\Users\mklich\workspace\google_contacts_webapp\src\gdata\service.py”中,第 1718 行,在 ToUri 返回 atom.service.BuildUri(q_feed, self) File "C:\Users\mklich\workspace\google_contacts_webapp\src\atom\service.py",第 584 行,在 BuildUri parameter_list = DictionaryToParamList(url_params, escape_params) 文件“C:\Users\mklich\workspace\google_contacts_webapp\src\atom\service.py”,第 551 行,在 DictionaryToParamList 中用于参数,(url_parameters 或 {}).items()] 文件“C:\Python25\lib\urllib.py”中的值,第 1210 行,在 quote_plus 中 if '' in s: TypeError: 'datetime.datetime' 类型的参数不是可迭代的

我做错了什么还是一个错误?感谢您的回复。

0 投票
2 回答
333 浏览

python - App Engine:检查我的数据存储区查询是否返回任何结果的最快方法是什么?

我想检查 Google App Engine 数据存储区中的数据存储区查询是否有任何结果。这是我的查询:

检查我的查询是否返回任何结果的最快和最优雅的方法是什么?

PS:我知道这样做的方法,但我不确定它是否非常有效......

0 投票
2 回答
1948 浏览

java - 如何将本地 Google App Engine Python 数据存储复制到本地 Google App Engine Java 数据存储?

我有大约 4000 个实体需要插入到 Java App Engine 数据存储中。据我了解,目前只有 Python 版本的 App Engine 具有将数据从 CSV 文件上传到数据存储区的工具。因此,到目前为止,我所做的是按照http://code.google.com/appengine/docs/python/tools/uploadingdata.html上的说明进行操作,并使用 Python 成功地将我的 4000 个左右的实体写入我的本地数据存储区。我只是为了从 .csv 中获取实体并将它们写入数据存储区而使用 Python。我已经通过使用本地主机 python 版本的应用程序引擎上的 /_ah/admin 地址来查看数据查看器来验证实体是否存在。

我现在要做的是在我的初始 Java 版本中本地使用这些实体。现在,当使用 Python 将实体上传到已部署的 App Engine 版本时,这通常不是问题,因为同一项目的不同版本共享同一个数据存储区,而与运行时无关。因此,如果我一直将所有 .csv 行写入我的应用程序的部署 Python 版本,我部署的 Java 版本将能够看到通过我的 Python 版本上传的所有实体。但是,您如何在本地实现相同的目标?

据我了解,App Engine 的 Java 版本在 WEB-INF 目录的 .bin 文件中创建了一个本地数据存储。App Engine 的 Python 版本是否在某个地方创建了一个类似的 .bin 文件,我可以将其复制到我的 Java 版本中?我什至无法追踪 Python 版本在本地存储其数据的确切位置。任何帮助深表感谢。

0 投票
1 回答
320 浏览

google-app-engine - Query/GqlQuery .order() 限制结果集?

我刚刚注意到一个我无法理解的查询的奇怪结果。似乎将 order() 添加到 Query 限制了我得到的结果

这是我的互动:

如您所见,两个查询之间没有添加一百个实体。似乎 order() 指令限制了结果集。Butcreated_at是必需的属性,存在于所有实体中。

没有例外。那么为什么使用 ORDER 的查询不会返回所有实体呢?

最后,调查是否是坏数据:

0 投票
1 回答
119 浏览

google-app-engine - 从 App Engine 中的表中选择给定属性

有没有办法从 App Engine 数据存储区中只选择给定的属性?

想象一下,我有一个具有许多属性的 User 实体,但在给定的时刻,我只想获取用户名列表(而不是获取所有用户的所有属性)。

因此,等效于以下 SQL: SELECT name FROM User;

我对各种解决方案(如果有的话)感兴趣,python、java、低级 API、GQL……随便……

谢谢

0 投票
4 回答
2493 浏览

django - 使用 GAE 数据存储的复杂查询

我正处于开发体育统计网站(终极飞盘)的早期阶段,如果 Google App Engine 适合我,我想知道您的意见。

我正在使用 Django 用 Python 编写它,并且多年来一直对标准 RDBMS 感到满意,但这个站点是一个长期项目,我期待大量数据,所以我想要 GAE 数据存储提供的“无限”扩展。对数据库的绝大多数查询将返回非常标准的结果,这将使数据存储看起来像是一个合乎逻辑的选择。但是,我希望将来能够进行极其复杂的查询,以提出新的统计指标或简单地提出有趣的结果。我计划在未来做很多这样的事情,但在收集到数据之前我不会知道这些查询是什么。

例如,你经常会看到棒球统计分析员提出荒谬的统计数据,例如“这只是过去 50 年来,两名姓氏以“Z”开头的左撇子投手背靠背投出一击即停的情况。天”。我希望将来可以灵活地进行任何查询。:)

但是,我的印象是,像 bigtable 这样的非关系数据库需要您事先提出包含冗余数据的模型,并且所有工作都发生在插入而不是提取上。我已经构建了 django 模型,其中几乎包含了我需要查询的所有数据,但我不知道从现在起一两年后我想要什么样的非规范化模型。因此,我觉得将来在 GAE 数据存储上进行复杂查询将非常困难,并且需要我从服务器上提取大量信息,然后再用 python 处理它。

谷歌应用引擎数据存储对于我想做的事情来说是完全错误的吗?或者我只是错过了一些东西。提前非常感谢!

更新: 感谢到目前为止的回复。我意识到我还应该提到很多这些复杂的查询是我希望用户能够执行的查询,因此离线数据库并不是一个真正的选择。例如,用户应该能够看到任何两个特定球员在特定比赛或赛季中同时在场上时的表现的各种统计数据。虽然这些查询不像标准聚合统计那样频繁,但它们仍然会定期发生。

拥有一个关系数据库和 GAE 数据存储会很棒,但是 django 默认不支持多个数据库,并且将解决方案修补在一起听起来既困难又混乱。Eric Florenzano 为两个都使用 django 模型的数据库提供了一个很好的解决方案,但是如果我要使用 GAE 数据存储,我将不得不使用应用程序引擎的 db 模型。在这一点上,像他为这个复杂的问题提出一个很好的解决方案有点超出我的技能水平。

现在,我最喜欢的两个选项是使用 GAE 任务队列来执行困难的查询,或者使用更标准的网络主机(如 webfaction),然后在我的数据增长并且我需要提高性能时对我的表进行非规范化。

0 投票
2 回答
839 浏览

google-app-engine - App Engine:过滤器以选择 ListProperties 中存在特定项目的实体

我需要根据存在某个元素的 ListProperties 之一来过滤实体。有点像:

entity.filter('listProp IN ',element) 除非你明白我的意思,listProp 和 element 是相反的。

有谁知道如何过滤这样的?

0 投票
7 回答
4082 浏览

python - 如何将字典放入数据存储区?

有没有一种在数据存储中存储 Python 字典的好方法?我想做如下的事情:

当然,最后一行实际上不起作用。我需要 hops 成为键值对列表,其中键始终是字符串,值可以是字符串、整数或浮点数,但我看不到任何可以让我在属性类