问题描述
对于 Python 2 GAE,remote_api_shell.py
对于更新实时数据存储非常方便。
使用 Python 3 GAE 和 cloud ndb,这不起作用。有没有好的替代品?
解决方法
由于您不再处于使用 Python 3 GAE 的沙箱中,因此您可以执行此操作,但云 ndb 上下文管理器使其变得乏味。
这个脚本(用 python -i
运行)使它更方便:
import atexit
from google.cloud import ndb
datastore_client = ndb.Client('my-app')
datastore_client = ndb.Client()
ctx = datastore_client.context()
ctx.__enter__()
def close_ctx():
ctx.__exit__(None,None,None)
atexit.register(close_ctx)
此脚本将启动 ndb 上下文管理器,然后呈现 Python 解释器以供交互使用。您输入的所有交互式命令都将在上下文中执行。
不确定是否需要它,但为了完整起见,它还会在您 ctrl-d
时关闭上下文管理器。
当您运行脚本时,您会看到来自 Google 的一些警告,提示您未通过身份验证,但您可以忽略这些警告。