相当于云 ndb 的 remote_api_shell.py?

问题描述

对于 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 的一些警告,提示您未通过身份验证,但您可以忽略这些警告。