python - 在 Google App Engine 上使用单个 db.put() 插入多个模型实例

标签 python google-app-engine

编辑:抱歉,我没有澄清这一点,这是一个与 Google App Engine 相关的问题。

根据 this ,我可以给 db.put() 一个模型实例列表,并要求它将它们全部输入到数据存储中。但是,我一直无法成功做到这一点。我对 Python 还是有点陌生​​,所以不要着急

list_of_models = []
for i in range(0, len(items) - 1):
    point = ModelName()

    ... put the model info here ...

    list_of_models.append(point)

db.put(list_of_models)

谁能指出我哪里出错了?

最佳答案

请定义您所说的“出错”是什么意思——您展示的一小段代码很可能是非常“正确”的应用程序的一部分。考虑例如:

class Hello(db.Model):
  name = db.StringProperty()
  when = db.DateTimeProperty()

class MainHandler(webapp.RequestHandler):

  def get(self):
    self.response.out.write('Hello world!')
    one = Hello(name='Uno', when=datetime.datetime.now())
    two = Hello(name='Due', when=datetime.datetime.now())
    both = [one, two]
    db.put(both)

这确实会在每次调用 get 方法时正确插入两个实体,例如,如果示例应用继续:

def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  wsgiref.handlers.CGIHandler().run(application)


if __name__ == '__main__':
  main()

就像在典型的“hello world”应用引擎应用中一样。您可以使用 sdk 控制台的数据存储查看器验证是否正确添加了两个实体,或者当然可以通过添加另一个处理程序来获取实体并显示它们,等等。

所以请澄清!

关于python - 在 Google App Engine 上使用单个 db.put() 插入多个模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/803517/

相关文章:

python - 在 Python Bottle 中使用模板

python - 如何获得模块中类的定义?

google-app-engine - GAE 命名空间与线程安全一起使用是否安全?

python - 为什么使用 scipy 计算的函数的导数随参数 dx 的值而变化?

python - 使用 xpath 语法解析带有 lxml.html 的 html 表单

python - 如何在 Google App Engine 柔性环境中编辑 NGINX 配置?

php - iOS 选择哪种服务器端语言,以及在处理套接字连接时首选哪种服务器后端

java - GAE - 找不到类 : Caused by: java. lang.ClassNotFoundExceptionAppIdentityCredential$AppEngineCredentialWrapper

google-app-engine - GAE/J 请求日志格式分解

python - 在xarray中过滤数据的简洁方法