为什么应用程序引擎名称空间会在我不期望的情况下应用?

2024-04-26 22:41:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我完全被appengine(python)中名称空间的工作方式弄糊涂了。我已经阅读了https://developers.google.com/appengine/docs/python/multitenancy/multitenancy#Using_Namespaces_with_the_Datastore并遵循了它的建议,但是为什么这段代码可以工作呢?它不应该在“get”中使用“current”命名空间吗?在

namespace_manager.set_namespace("foo")
t = model.Track(description="in foo namespace")
t.put()

namespace_manager.set_namespace("bar")
# Why doesn't this line fail?
x = model.Track.get(t.key())
x.delete()

Tags: https名称getmodelfoogoogle方式manager
1条回答
网友
1楼 · 发布于 2024-04-26 22:41:27

命名空间是键的一部分。在

只有在没有明确指定另一个名称空间时(例如,在创建新实体时),才会考虑使用名称空间管理器定义的名称空间。换句话说,当生成一个新的键时,使用namespace设置的名称空间_manager.set_命名空间被注入钥匙。从应用程序的位置获取足够的信息。在

https://developers.google.com/appengine/docs/python/datastore/keyclass#Key_namespace阅读

相关问题 更多 >