Google App Engine(Python)-数据存储区正在复制实体

马特

我正在使用适用于Google App Engine和瓶子的Python SDK。

运行类似这样的简单操作来设置要使用的某些实体:

@bottle.route('/test')
def testing():
    Statistic(team_id = 2, qty_customers = 600).put()
    Statistic(team_id = 3, qty_customers = 5).put()
    return "Done."

统计信息如下所示:

class Statistic(ndb.Model):
    team_id = ndb.IntegerProperty()
    qty_customers = ndb.IntegerProperty()

我希望它为每个实体创建一个实体,并将其添加到数据存储中。它分别创建两个副本,并将它们添加到数据存储中。

如何使代码仅添加一个实体?

为什么要创建两个?

编辑:澄清一下,我一次运行了testing()函数,它创建了4个实体。每个重复两次。

巴拉克的手

在旧的DB(db.Model)中,您必须key_name在创建实例时指定

在新的DB(ndb.Model)中,您需要指定id,否则选择一个递增的整数。

因此,testing两次调用函数会产生四个Statistic具有ID 1、2、3和4的不同实例。

如果为每个Statistic实例明确指定一个不同的ID ,则将仅获得两个实例。


我认为,就您而言,您最好删除该team_id字段:

class Statistic(ndb.Model):
    qty_customers = ndb.IntegerProperty()

然后,为Statistic您创建的每个实例指定唯一的ID

def testing():
    Statistic(id = 2, qty_customers = 600).put()
    Statistic(id = 3, qty_customers = 5).put()

顺便说一句,我认为建议使用字符串ID而不是整数ID:

def testing():
    Statistic(id = '2', qty_customers = 600).put()
    Statistic(id = '3', qty_customers = 5).put()

更新:

即使testing您只在应用程序中调用一次函数,GAE也会经常创建和销毁应用程序实例本身因此,每次创建应用程序的新Statistic实例时,也会创建一对新实例。如果这些实例尚未在数据库中,则在调用函数时会将它们添加到数据库中put(这就是为什么您需要为每个实例指定一个ID)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查询所有实体的Google App Engine数据存储区

来自分类Dev

Google App Engine数据存储区按属性删除实体

来自分类Dev

Google App Engine数据存储区如何获取Key <?>的实体

来自分类Dev

如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

来自分类Dev

Google App Engine:根据发布数据创建数据存储区实体

来自分类Dev

Google App Engine数据存储区重新索引现有实体

来自分类Dev

使用Java随机查询Google App Engine数据存储区实体

来自分类Dev

Google App Engine转到数据存储区,使用键检查实体是否存在

来自分类Dev

如何使用Java从Google App Engine数据存储区中的实体提取属性

来自分类Dev

Google App Engine NDB数据存储区get_by_id以获取实体

来自分类Dev

为什么我的Google App Engine数据存储区实体在删除后会重新出现?

来自分类Dev

覆盖Google App Engine- Java中的数据存储区实体

来自分类Dev

列出Google App Engine数据存储区中的所有实体时出现AttributeError

来自分类Dev

如何使用Google数据存储在Google App Engine中动态创建多个实体(Python)

来自分类Dev

Google App Engine数据存储区查询返回陈旧数据

来自分类Dev

Google App Engine数据存储区的大表是如何设计的?

来自分类Dev

Google App Engine数据存储区-密钥与标识符

来自分类Dev

Google App Engine中的数据存储区与Cloud SQL

来自分类Dev

Google App Engine NDB数据存储区的简单说明

来自分类Dev

Google App Engine数据存储区中的多线程

来自分类Dev

在Google App Engine上运行数据存储区查询

来自分类Dev

Google App Engine数据存储区获得财产的价值

来自分类Dev

在Google App Engine数据存储区上执行大型查询

来自分类Dev

Google App Engine数据存储区非复合索引

来自分类Dev

Google App Engine数据存储区实体设计,可最大程度地降低成本并提高性能

来自分类Dev

在不初始化特定属性的情况下创建Google App Engine数据存储区实体

来自分类Dev

App Engine数据存储区:如何批量删除本地主机上的数据存储区实体?

来自分类Dev

连接到Google App Engine数据存储

来自分类Dev

Google App Engine将大数据放入数据存储区的有效方法

Related 相关文章

  1. 1

    查询所有实体的Google App Engine数据存储区

  2. 2

    Google App Engine数据存储区按属性删除实体

  3. 3

    Google App Engine数据存储区如何获取Key <?>的实体

  4. 4

    如何从Google App Engine(Java)数据存储区中的子实体查询父实体?

  5. 5

    Google App Engine:根据发布数据创建数据存储区实体

  6. 6

    Google App Engine数据存储区重新索引现有实体

  7. 7

    使用Java随机查询Google App Engine数据存储区实体

  8. 8

    Google App Engine转到数据存储区,使用键检查实体是否存在

  9. 9

    如何使用Java从Google App Engine数据存储区中的实体提取属性

  10. 10

    Google App Engine NDB数据存储区get_by_id以获取实体

  11. 11

    为什么我的Google App Engine数据存储区实体在删除后会重新出现?

  12. 12

    覆盖Google App Engine- Java中的数据存储区实体

  13. 13

    列出Google App Engine数据存储区中的所有实体时出现AttributeError

  14. 14

    如何使用Google数据存储在Google App Engine中动态创建多个实体(Python)

  15. 15

    Google App Engine数据存储区查询返回陈旧数据

  16. 16

    Google App Engine数据存储区的大表是如何设计的?

  17. 17

    Google App Engine数据存储区-密钥与标识符

  18. 18

    Google App Engine中的数据存储区与Cloud SQL

  19. 19

    Google App Engine NDB数据存储区的简单说明

  20. 20

    Google App Engine数据存储区中的多线程

  21. 21

    在Google App Engine上运行数据存储区查询

  22. 22

    Google App Engine数据存储区获得财产的价值

  23. 23

    在Google App Engine数据存储区上执行大型查询

  24. 24

    Google App Engine数据存储区非复合索引

  25. 25

    Google App Engine数据存储区实体设计,可最大程度地降低成本并提高性能

  26. 26

    在不初始化特定属性的情况下创建Google App Engine数据存储区实体

  27. 27

    App Engine数据存储区:如何批量删除本地主机上的数据存储区实体?

  28. 28

    连接到Google App Engine数据存储

  29. 29

    Google App Engine将大数据放入数据存储区的有效方法

热门标签

归档