中繼資料實體 Python 參考資料

附註:我們強烈建議建構新應用程式的開發人員使用 NDB 用戶端程式庫,因為 NDB 用戶端程式庫與本用戶端程式庫相較之下有幾個優點,例如能透過 Memcache API 自動將實體加入快取。如果您目前使用的是舊版的 DB 用戶端程式庫,請參閱從 DB 至 NDB 的遷移指南

模型類別 EntityGroupNamespaceKindProperty 代表取得或查詢中繼資料類型的結果。這些類別全部在 google.appengine.ext.db.metadata 套件中定義。如需更多資訊和使用範例,請參閱「中繼資料」頁面。

輔助函式

以下輔助函式可用於取得中繼資料資訊,無需發佈明確查詢或取得:

get_entity_group_version(entity_or_key)

傳回包含 entity_or_key 的實體群組版本。每次變更實體群組,版本數字一定會增加。即使實體群組沒有任何可供使用者查看的變更,版本也可能會增加。如果從未寫入實體群組,可能會傳回 None

警告:實體群組中繼資料的行為現在已有不同。實體群組版本數字增加可能跟使用者更新無關。在此之前,實體群組的版本數字只會因為使用者更新而增加。如要延續舊版行為,請採取實體群組版本因應措施

引數:

entity_or_key
您要的金鑰或實體版本。
get_namespaces(start=None, end=None)

會傳回命名空間名稱清單。

引數

start

若非 None,僅傳回大於或等於指定值的命名空間名稱。

end

若非 None,僅傳回小於指定值的命名空間名稱。

get_kinds(start=None, end=None)

傳回實體種類名稱清單。

引數

start

若非 None,僅傳回大於或等於指定值的類別名稱。

end

若非 None,僅傳回小於指定值的類型名稱。

get_properties_of_kind(kind, start=None, end=None)

傳回指定種類建立索引的屬性名稱清單,不含未建立索引的屬性。

引數

kind

屬性名稱受到要求的種類。

start

若非 None,僅傳回大於或等於指定值的屬性名稱。

end

若非 None,僅傳回小於指定值的屬性名稱。

get_representations_of_kind(kind, start=None, end=None)

將指定種類各個建立索引屬性名稱的字典對應傳回至其表示法清單,不含未建立索引的屬性。

引數

kind

屬性表示法受到要求的種類。

start

若非 None,僅傳回名稱大於或等於指定值的屬性表示法。

end

若非 None,僅傳回名稱小於指定值的屬性表示法。

EntityGroup 類別

__entity_group__ 中繼資料的模型 (僅適用於 HR 資料儲存庫)。

這項中繼資料包含數值 __version__ 屬性,每次變更實體群組時,這項屬性一定會增加。實體群組出現使用者看不見的變化,版本數字也有可能增加。如果從未寫入實體群組,__entity_group__ 實體可能不存在。

屬性

version
版本號碼

類別方法

key_for_entity(entity_or_key)
傳回含有 entity_or_key 的實體群組中繼資料鍵。使用此金鑰做為引數,以便 get() 含有 entity_or_key 實體群組的 __entity_group__ 中繼資料實體。

引數:

entity_or_key
您要取得 __entity_group__ 金鑰的金鑰或實體。

Namespace 類別

Namespace 類別代表特殊種類 __namespace__ 的中繼資料實體,以 命名空間查詢結果傳回。實體的索引鍵是命名空間的名稱。(由空字串 "" 指定的預設命名空間則為例外:空字串並非有效的索引鍵名稱,因此這個命名空間會改以數字 ID 1 的索引鍵表示)。

屬性

Namespace 類別的執行個體具有下列屬性:

namespace_name

傳回此實體金鑰指定的命名空間名稱。

類別方法

Namespace 類別具有下列類別方法:

key_for_namespace(namespace)

傳回指定命名空間的 __namespace__ 鍵。

引數

命名空間

要求傳回其金鑰的命名空間。

key_to_namespace(key)

傳回特定 __namespace__ 金鑰指定的命名空間。

引數

key

要求傳回其名稱的金鑰。

Kind 類別

Kind 類別代表特殊種類 __kind__ 的中繼資料實體,以 種類查詢結果傳回。實體金鑰為實體種類名稱。

屬性

Kind 類別的執行個體具有下列屬性:

kind_name

傳回此實體金鑰指定的種類名稱。

類別方法

Kind 類別具有下列類別方法:

key_for_kind(kind)

傳回指定類型的 __kind__ 鍵。

引數

kind

金鑰受到要求的種類。

key_to_kind(key)

傳回特定 __kind__ 鍵指定的類型。

引數

key

種類受到要求的金鑰。

Property 類別

Property 類別代表特殊種類 __property__ 的中繼資料實體,以 屬性查詢結果傳回。代表「K」種類的「P」屬性實體建構方式如下:

  • 實體的索引鍵具有種類 __property__ 及索引鍵名稱「P」
  • 父系實體的金鑰具有種類 __kind__ 及金鑰名稱「K」

屬性

Property 類別的例項具有下列屬性:

kind_name

傳回此實體金鑰指定的種類名稱。

property_name

傳回此實體金鑰指定的屬性名稱。

類別方法

Property 類別具有下列類別方法:

key_for_kind(kind)

傳回指定類型的 __property__ 鍵的父項鍵。

引數

kind

父項金鑰受到要求的種類。

key_for_property(kind, property)

傳回指定屬性和類別的 __property__ 金鑰。

引數

kind

金鑰受到要求的種類。

property

金鑰受到要求的屬性。

key_to_kind(key)

傳回特定 __property__ 鍵指定的類型。

引數

key

要求傳回其類型名稱的金鑰。

key_to_property(key)

傳回特定 __property__ 金鑰指定的屬性,若金鑰僅由單一種類指定,則傳回 None

引數

要求傳回其屬性名稱的金鑰。