在我正在编写的Python Google App Engine应用程序中,我有一个存储在数据存储区中的实体,我需要检索它,制作它的精确副本(除了密钥),然后将此实体放回去.
我该怎么做?特别是,在做这个时我是否需要注意任何警告或技巧,以便获得我期望的那种副本而不是其他东西.
ETA: 嗯,我试了一下,确实遇到了问题.我想以这样的方式制作我的副本,以便在编写代码时不必知道属性的名称.我的想法是这样做:
#theThing = a particular entity we pull from the datastore with model Thing
copyThing = Thing(user = user)
for thingProperty in theThing.properties():
copyThing.__setattr__(thingProperty[0], thingProperty[1])
Run Code Online (Sandbox Code Playgroud)
执行时没有任何错误......直到我尝试从数据存储中提取copyThing,此时我发现所有属性都设置为None(显然除了用户和密钥).很明显,这段代码正在做一些事情,因为它正在用None替换默认值(所有属性都设置了默认值),但根本不是我想要的.建议?
我正在按照本指南尝试Google云端功能:https://cloud.google.com/functions/docs/quickstart
我创建了一个带有HTTP触发器的函数,并且能够执行POST请求以触发函数写入数据存储区.
我想知道是否有办法保护这个HTTP端点?目前似乎它将接受来自任何地方/任何人的请求.
当谷歌搜索时,我看到大多数结果都谈到使用Firebase保护内容.但是,我没有在这里使用Firebase服务.
我的选择是让它打开,希望没有人知道URL端点(默默无闻的安全性),或者在函数本身中实现我自己的auth检查?
security authentication google-cloud-datastore google-cloud-functions
如何在dev_appserver上删除所有实体或重置本地数据存储区?我不小心递归地调用了一个函数来测试时创建一个实体.
我在Vista上使用带有Python的Google App-engine SDK.
我需要一些独特的属性.我怎样才能做到这一点?
有类似的东西unique=True吗?
我正在使用Google App Engine for Python.
我正在建立一个网络服务,并希望使用用户的谷歌帐户凭据.
该服务在GAE上运行,并将具有Web客户端和Android本机客户端.
这是我第一次尝试这样的东西,我一直在阅读有关OpenID和Android AccountManager库的内容.
我仍然不确定在我的数据存储区中存储用户有哪些选择.我应该使用什么标识符?是否可以在原生Android应用程序上使用OpenID?
任何帮助和/或指针将不胜感激.谢谢.
好吧,我正在开发App Engine(Java),经过大量的尝试和部署,我需要重置数据存储区.我为测试性能添加了大量随机数据,除此之外,实体发生了很大变化,因此我需要删除所有:数据,表,索引.
我怎样才能做到这一点?
我在读在谷歌App Engine的群体很多用户(FIG1,Fig2,图三)不能找出其中的大量数据存储的读取他们的帐单报告从何而来.
您可能知道,数据存储读取的上限为每天50K操作,高于您必须支付的预算.
50K操作听起来像很多资源,但不幸的是,似乎每个操作(Query,Entity fetch,Count ..)都隐藏了几个数据存储读取.
是否有可能通过API或一些其他方法来知道,有多少数据存储读取背后都隐藏着共同的RPC.get,RPC.runquery呼吁?
在这种情况下,Appstats似乎没用,因为它只提供RPC细节而不是隐藏的读取成本.
有这样一个简单的模型:
class Example(db.Model):
foo = db.StringProperty()
bars= db.ListProperty(str)
Run Code Online (Sandbox Code Playgroud)
和数据存储区中的1000个实体,我对这些操作的成本感兴趣:
items_count = Example.all(keys_only = True).filter('bars=','spam').count()
items_count = Example.all().count(10000)
items = Example.all().fetch(10000)
items = Example.all().filter('bars=','spam').filter('bars=','fu').fetch(10000)
items = Example.all().fetch(10000, offset=500)
items = Example.all().filter('foo>=', filtr).filter('foo<', filtr+ u'\ufffd')
Run Code Online (Sandbox Code Playgroud) google-app-engine rpc profiling billing google-cloud-datastore
我想知道什么是设计社交应用程序的最佳方式,其中成员使用Google AppEngine进行活动并关注其他成员的活动.
更具体一点,假设我们有这些实体:
困难的部分是关注您朋友的活动,这意味着汇总您所有朋友的最新活动.通常情况下,这将是活动表和你的朋友列表之间的连接,但这不是一个可行的appengine设计,因为没有连接模拟它将需要激活N个查询(其中N是朋友的数量)然后合并到内存中 - 非常昂贵,可能超过要求的截止日期......)
我目前正在考虑使用收件箱队列来实现这一点,其中创建新的Activity将触发后台进程,该进程将新活动的密钥放在每个后续用户的"收件箱"中:
我很高兴听到有关这个设计或其他建议等的想法.
我在GAE的数据存储/ JDO学习曲线上慢慢地,有点痛苦地工作.最近我发现了一个名为Objectify的框架,它应该介于非常简单的Datastore本机API和复杂的JDO之间.我一直在阅读它,它确实看起来很有吸引力.
我想知道的是,如果有人对Objectify有很多经验......它有多成熟?有很多用户社区吗?它是否已准备好迎接繁重的黄金时段?可以放弃吗?
在这里或在网上似乎没有太多关于Objectify的讨论,这让我对委托我的项目感到紧张.
google-app-engine frameworks objectify google-cloud-datastore
检查实体是否存在于Google-app-engine数据存储区中的最佳/最快方法是什么?现在我试图通过键获取实体并检查get()是否返回错误.
我不知道在数据存储区上获取实体的过程.有没有更快的方法只做这个检查?