问题描述
我将 Python 2.7 运行时与 Google App Engine 上的 1.6.2 SDK 中的 NDB 结合使用.
I am using the Python 2.7 runtime with NDB from the 1.6.2 SDK on Google App Engine.
我收到以下错误:
BadRequestError: app s~myapphr 无法访问 app dev~myapphr 的数据
BadRequestError: app s~myapphr cannot access app dev~myapphr's data
源于此代码:
device = model.Key(urlsafe=device_id).get()
我正在从别名为 myapphr 的 dev.myapp.appspot.com 访问我的应用程序.device_id 是在同一个 dev.myapphr 版本上创建的.
I am accessing my app from dev.myapp.appspot.com that is aliased to myapphr. device_id was created on the same dev.myapphr version.
这是怎么回事?
推荐答案
开发服务器的默认 default_partition 为 'dev',在生产环境中,HRD 应用程序获得一个分区为 's'.如果您在开发服务器上创建一个 urlsafe 密钥并将其存储为字符串,它将无法在具有不同分区的生产服务器上工作.使密钥可移植的方法是将它们保存在带有 db 的 ReferenceProperty 或 ndb 上的 KeyProperty 中.
the dev server has a default default_partition of 'dev' and on production, HRD apps get a partition of 's'. If you create a urlsafe key on the dev server and store it as a string it will not work on a the production server with a different partition. the way to make keys portable is to save them in a ReferenceProperty with db or KeyProperty on ndb.
这篇关于BadRequestError: app s~myapphr 无法访问 app dev~myapphr 的数据.为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!