google.appengine.ext.db パッケージ

概要

データストア用のシンプルなスキーマベースのデータベース抽象化レイヤ。

SQL データベース上に構築された、Django の抽象化レイヤを手本にしています。http://www.djangoproject.com/documentation/mode_api/。コードが若干シンプルでかなり少ない理由は、データストアが SQL データベースよりはるかに単純であるためです。

プログラミング モデルは、Model クラスの Python サブクラスを宣言し、データストア プロパティをそのクラスのクラスメンバーとして宣言します。そのため、ストーリーにタイトル、本文、作成日を付けて公開したいのであれば、次のようにします。

class Story(db.Model):

title = db.StringProperty() body = db.TextProperty() created = db.DateTimeProperty(auto_now_add=True)

データストアに新しいストーリーを作成するには、以下の使用パターンを使用します。

story = Story(title=’My title’) story.body = ‘My body’ story.put()

ストーリー エンティティを照会するには、データストアの構文とセマンティクスに直接マップしている組み込みクエリ インターフェースを使用します。

stories = Story.all().filter(‘date >=’, yesterday).order(‘-date’) for story in stories:

print story.title

Property 宣言は、割り当てに対して検証を実行することにより型を強制します。たとえば、DateTimeProperty は有効な datetime オブジェクトを割り当てるよう強制します。プロパティに「必須」オプションを指定すると、そのプロパティに None を割り当てることができなくなります。

モデル間の参照もサポートしているので、ストーリーにコメントがある場合は、次のように表現します。

class Comment(db.Model):

story = db.ReferenceProperty(Story) body = db.TextProperty()

データストアからストーリーを取り出すとき、ストーリー参照は最初に参照されるときに自動的に解決されるため、手作業で追加のクエリを実行せずにモデル インスタンスを簡単に使用できます。

comment = Comment.get(key) print comment.story.title

同様に、このプロパティを通じて各ストーリーを参照する一連のコメントにアクセスできます。この際に使用する comment_set という逆参照は、一致するすべてのコメントを返すように事前設定されたクエリです。

story = Story.get(key) for comment in story.comment_set:

print comment.body

サブモジュール

google.appengine.ext.db.metadata

アプリのデータストア メタデータにアクセスするためのモデルとヘルパー関数。

google.appengine.ext.db.polymodel

ポリモーフィック モデルおよびクエリのサポート。

google.appengine.ext.db.stats

アプリ固有のデータストア使用統計にアクセスする際に使用するモデル。

内容

class google.appengine.ext.db.BlobProperty(*args, **kwds)ソース

ベース: google.appengine.ext.db.UnindexedProperty

1,500 バイトを超え得るバイト文字列。

data_type

Blob のエイリアス

class google.appengine.ext.db.BooleanProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db.Property

boolean プロパティ。

data_type

bool のエイリアス

empty(value)ソース

boolean プロパティが空です。

False は空の値ではありません。

戻り値

値が None の場合は True、そうでない場合は False。

validate(value)ソース

ブール値を検証します。

戻り値

有効な値。

発生するエラー

プロパティが 「bool」のインスタンスでない場合は BadValueError。

class google.appengine.ext.db.ByteStringProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db.Property

短い(1,500 バイト以下)バイト文字列。

このタイプは、インデックス登録が必要な短いバイナリ値に使用する必要があります。(長さに関係なく)インデックス登録を必要としない場合は、BlobProperty を代わりに使用してください。

MAX_LENGTH = 1500
data_type

ByteString のエイリアス

validate(value)ソース

ByteString プロパティを検証します。

戻り値

有効な値。

発生するエラー

プロパティが「ByteString」のインスタンスでない場合は BadValueError。

class google.appengine.ext.db.CategoryProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty

値が Category インスタンスであるプロパティ。

data_type

Category のエイリアス

class google.appengine.ext.db.ComputedProperty(value_function, indexed=True)ソース

ベース: google.appengine.ext.db.Property

他の値から派生したプロパティを作成するために使用するプロパティ。

一部の属性はユーザーが設定してはいけません。実行時に同じエンティティの他の値から自動的に計算されます。これらの値は、検索キーとして役に立つため、永続プロパティとして実装されます。

計算されたプロパティは、値を設定できないという点を除いて、通常のプロパティと同じ働きをします。値を設定しようとすると db.DerivedPropertyError が発生し、db.Model でエンティティ読み込み時はこれは無視されます。このプロパティに getattr が使用されると、値は再計算されます。これは、モデルが get_value_for_datastore をプロパティで呼び出すと発生します。

import string

class Person(Model):

name = StringProperty(required=True)

@db.ComputedProperty def lower_case_name(self):

return self.name.lower()

#名前で使用されている大文字 / 小文字を区別せず、すべての人を検索します。 Person.gql(‘WHERE lower_case_name=:1’ % name_to_search_for.lower())

exception google.appengine.ext.db.ConfigurationErrorソース

ベース: google.appengine.api.datastore_errors.Error

プロパティまたはモデルが正しく構成されていないときに発生します。

class google.appengine.ext.db.DateProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)ソース

ベース: google.appengine.ext.db.DateTimeProperty

時刻のない日付が格納される日付プロパティ。

data_type

date のエイリアス

get_updated_value_for_datastore(model_instance)ソース

データストアに送信するプロパティの新しい値を取得します。

戻り値

auto_now が True に設定されている変則的なケースで date インスタンスに応じた now()。それ以外の場合は AUTO_UPDATE_UNCHANGED。

get_value_for_datastore(model_instance)ソース

プロパティから値を取得してデータストアに送信します。

datetime.date をモデル インスタンスから取得して、時刻がゼロに設定された datetime.datetime インスタンスを返します。

詳細については、基本クラスメソッドのドキュメントをご覧ください。

make_value_from_datastore(value)ソース

このプロパティのネイティブ表現。

エンティティから取得した datetime.datetime を受け取って、その日付部分を表す datetime.date インスタンスを返します。

詳細については、基本クラスメソッドのドキュメントをご覧ください。

static now()ソース

now を日付日時値として取得します。

戻り値

「now」の「date」部分のみです。

validate(value)ソース

日付を検証します。

戻り値

有効な値。

発生するエラー
  • プロパティが「date」のインスタンスでない場合、

  • あるいは「datetime」(「date」のサブクラス

  • であるが、実質的には異なる型)のインスタンスである場合に BadValueError。

class google.appengine.ext.db.DateTimeProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)ソース

ベース: google.appengine.ext.db.Property

すべての日付 / 時刻プロパティの基本クラス。

時刻タプルと日時インスタンスの間の変換など、一般的な操作を処理します。

data_type

datetime のエイリアス

default_value()ソース

日時のデフォルト値。

戻り値

auto_now または auto_now_add が設定されている場合は date-time インスタンスに応じた now()の値。それ以外の場合はユーザーが構成したデフォルト値を実装。

get_updated_value_for_datastore(model_instance)ソース

データストアに送信するプロパティの新しい値を取得します。

戻り値

auto_now が True に設定されている変則的なケースで date-time インスタンスに応じた now()。それ以外の場合は AUTO_UPDATE_UNCHANGED。

static now()ソース

now を完全な datetime 値として取得します。

戻り値

タイムスタンプ全体(時刻と日付を含む)を表す「now」。

validate(value)ソース

日時を検証します。

戻り値

有効な値。

発生するエラー

プロパティが「datetime」のインスタンスでない場合は BadValueError。

exception google.appengine.ext.db.DerivedPropertyErrorソース

ベース: google.appengine.api.datastore_errors.Error

派生プロパティに値を割り当てようとしたときに発生します。

exception google.appengine.ext.db.DuplicatePropertyErrorソース

ベース: google.appengine.api.datastore_errors.Error

モデル定義でプロパティが重複している場合に発生します。

class google.appengine.ext.db.EmailProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty

値が Email インスタンスであるプロパティ。

data_type

Email のエイリアス

class google.appengine.ext.db.Expando(parent=None, key_name=None, _app=None, **kwds)ソース

ベース: google.appengine.ext.db.Model

動的に拡張可能なモデル。

Expando は、データストアに情報を格納するために、プロパティの定義を必要としません(ただし使用することは可能)。プロパティを expando オブジェクトに追加するには、割り当てを実行するだけで十分です。プロパティの割り当てはインスタンス ベースで行われるため、ある expando タイプのオブジェクトが他と異なるプロパティを持つことや、タイプが異なっているのに同じプロパティを持つことが可能です。ある expando でプロパティを複数定義して、これらのプロパティに他のモデルの場合と同じ振る舞いをさせることが可能です。

import datetime

class Song(db.Expando):

title = db.StringProperty()

crazy = Song(title=’Crazy like a diamond’,

author=’Lucy Sky’, publish_date=’yesterday’, rating=5.0)

hoboken = Song(title=’The man from Hoboken’,

author=[‘Anthony’, ‘Lou’], publish_date=datetime.datetime(1977, 5, 3))

crazy.last_minute_note=db.Text(‘Get a train to the station.’)

可能な用途:

expando の 1 つの使い方は、特定の構造体を持たないオブジェクトを 1 つ作成し、後で、アプリケーションが成熟して正しい状態になったとき、それを通常のモデル オブジェクトに変更して、明示的なプロパティを定義することです。

expando の他の例外:

保護された属性(名前が '_' で始まる属性)は、動的プロパティとして使用できません。これらは、保護された一時的(非永続的)属性用に確保されている名前です。

ルックアップの順序:

属性値を設定したりアクセスしようとすると、他の定義済みプロパティ(メソッドなど)や __dict__ 内の他の値がデータストア内の値より優先されます。

1 - データストアはどんな種類のプロパティを未定義の

expando 値で格納するか知ることができないため、プロパティを None に設定することは expando から削除することと同じです。

2 - Expando の永続変数を ‘_’ で始めてはいけません。こうした

変数は Python では「保護されている」とみなされ、内部で使用されます。

3 - Expando の動的プロパティは、空のリストを格納できません。

空のリストを動的プロパティに割り当てようとすると、ValueError が発生します。Expando の静的プロパティでも空のリストをサポートできますが、通常の Model プロパティと同様に、None の使用が制限されています。

dynamic_properties()ソース

エンティティのインスタンスに特有のプロパティはどれかを調べます。

戻り値

動的プロパティだけに対応する名前のセット。

class google.appengine.ext.db.FloatProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db.Property

float プロパティ。

data_type

float のエイリアス

empty(value)ソース

float プロパティが空であるかどうか。

0.0 は空の値ではありません。

戻り値

値が None の場合は True、そうでない場合は False。

validate(value)ソース

float を検証します。

戻り値

有効な値。

発生するエラー

プロパティが「float」のインスタンスでない場合は BadValueError。

class google.appengine.ext.db.GeoPtProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty

値が GeoPt インスタンスであるプロパティ。

data_type

GeoPt のエイリアス

class google.appengine.ext.db.GqlQuery(query_string, *args, **kwds)ソース

ベース: google.appengine.ext.db._BaseQuery

.filter() などの代わりに GQL クエリ構文を使用する Query クラス。

bind(*args, **kwds)ソース

引数(位置またはキーワード)をクエリにバインドします。

引数を直接クエリ コンストラクタに渡すこともできます。bind() を呼び出すごとに、前の引数セットが新しいセットに置き換えられます。これが便利な理由は、クエリを解析するのが大変な作業だからです。したがって、同じクエリで異なる引数セットを使用することが予想される場合は、GqlQuery() オブジェクトを維持し、毎回 bind() を呼び出す必要があります。

パラメータ
  • * args - クエリで数値参照をバインドするために使用する位置引数。

  • **kwds – 名前付き参照の辞書ベースの引数。

is_distinct()ソース
is_keys_only()ソース
projection()ソース
run(**kwargs)ソース

LIMIT 句プロパティを処理する、このクエリのイテレータ。

GQL クエリ文字列に LIMIT 句が含まれている場合、この関数はイテレータを返す前にすべての結果をフェッチします。含まれていなければ、結果がイテレータによりバッチで取り出されます。

パラメータ

kwargs – datastore_query.QueryOptions() で受け入れられるキーワード引数。

戻り値

このクエリのイテレータ。

class google.appengine.ext.db.IMProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty

値が IM インスタンスであるプロパティ。

data_type

IM のエイリアス

class google.appengine.ext.db.Index(index_id, kind, has_ancestor, properties)ソース

ベース: google.appengine.api.datastore._BaseIndex

データストア インデックス。

has_ancestor()ソース

これが祖先インデックスかブール値かを示します。

id()ソース

インデックス ID、long を返します。

kind()ソース

インデックスの種類、string を返します。なしの場合は空の文字列 (‘’)。

properties()ソース

インデックスのプロパティを返します。タプル(文字列としてのインデックス名、[ASCENDING | DESCENDING])。

class google.appengine.ext.db.IntegerProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db.Property

integer プロパティ。

data_type

int のエイリアス

empty(value)ソース

integer プロパティが空であるかどうか。

0 は空の値でありません。

戻り値

値が None の場合は True、そうでない場合は False。

validate(value)ソース

integer プロパティを検証します。

戻り値

有効な値。

発生

値が integer あるいは long インスタンスでない場合は BadValueError。

google.appengine.ext.db.KEY_RANGE_COLLISION = 'Collision'ソース

指定されたキー範囲内のキーを持つエンティティがすでに存在し、この範囲への書き込みによってそれらのエンティティが上書きされることを示します。さらに KEY_RANGE_COLLISION の含意が適用されます。この範囲に存在する上書き側エンティティが許容される場合は、指定された範囲を安全に使用することができます。

データストアの自動 ID アロケータは、既存のエンティティを上書きする新しいエンティティにキーを割り当てないため、ユーザーによってこの範囲に書き込まれたエンティティが、自動的にキーを割り当てられたエンティティによって上書きされることはありません。

google.appengine.ext.db.KEY_RANGE_CONTENTION = 'Contention'ソース

指定されたキー範囲は空ですが、データストアの自動 ID アロケータがこの範囲で新しいエンティティ キーを割り当てる可能性があることを示します。ただし、次のいずれかが当てはまる場合は、この範囲でキーを安全に手動で割り当てることができます。

  • この範囲のキーが手動で割り当てられているすべてのエンティティが書き込まれるまで、指定されたキー範囲と同じ種類と親を持つエンティティが他のリクエストによって挿入されることはない。

  • 他のリクエストによって書き込まれた、指定されたキー範囲と同じ種類と親を持つエンティティの上書きを許容できる。

データストアの自動 ID アロケータは、既存のエンティティを上書きする新しいエンティティにキーを割り当てないため、範囲が設定されると競合はなくなります。

google.appengine.ext.db.KEY_RANGE_EMPTY = 'Empty'ソース

指定されたキー範囲は空で、データストアの自動 ID アロケータはこの範囲のキーを新しいエンティティに割り当てないことを示します。

exception google.appengine.ext.db.KindErrorソース

ベース: google.appengine.api.datastore_errors.BadValueError

エンティティが不正な Model で使用されたときに発生します。

class google.appengine.ext.db.LinkProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty

値が Link インスタンスであるプロパティ。

data_type

Link のエイリアス

validate(value)ソース
class google.appengine.ext.db.ListProperty(item_type, verbose_name=None, default=None, write_empty_list=None, **kwds)ソース

ベース: google.appengine.ext.db.Property

物事のリストを格納するプロパティ。

これはパラメータ化されたプロパティです。パラメータは有効なリスト以外のデータ型でなければならず、すべての項目がこのタイプに適合しなければなりません。

data_type

list のエイリアス

default_value()ソース

list のデフォルト値。

'default' に指定されたプロパティは静的な値なので、その値をシャローコピーして、デフォルト値を持つすべてのフィールドが同じインスタンスを共有しないようにする必要があります。

戻り値

デフォルト値のコピー。

empty(value)ソース

list プロパティが空であるかどうか。

[] は空の値でありません。

戻り値

値が None の場合は true、そうでない場合は false。

get_value_for_datastore(model_instance)ソース

プロパティから値を取得してデータストアに送信します。

戻り値

データストアに保存するのに適した検証済みリスト。

make_value_from_datastore(value)ソース

このプロパティのネイティブ表現。

このリストが datetime.date または datetime.time のリストである場合、エンティティから取得した datetime.datetime のリストを datetime.date または datetime.time に変換します。

詳細については、基本クラスメソッドのドキュメントをご覧ください。

make_value_from_datastore_index_value(index_value)ソース
validate(value)ソース

リストを検証します。

戻り値

有効な値。

発生
  • プロパティが、項目がコンストラクタに指定された item_type のインスタンス

  • であるリストでない場合は BadValueError。

validate_list_contents(value)ソース

リスト内のすべての項目が正しい型であることを検証します。

戻り値

検証されたリスト。

発生するエラー
  • リストの中の項目がコンストラクタに指定された item_type の

  • インスタンスでない場合は BadValueError。

class google.appengine.ext.db.Model(parent=None, key_name=None, _app=None, _from_entity=False, **kwds)ソース

ベース: object

モデルがデータストア内のすべてのオブジェクト エンティティのスーパークラスです。

プログラミング モデルは Model クラスの Python サブクラスを宣言し、データストア プロパティをそのクラスのクラスメンバーとして宣言します。したがって、タイトル、本文、作成日があるストーリーを公開したいのであれば、次のようにします。

class Story(db.Model):

title = db.StringProperty() body = db.TextProperty() created = db.DateTimeProperty(auto_now_add=True)

model インスタンスは親をひとつだけ持つことができます。親を持たないモデル インスタンスはルート エンティティです。インスタンスを、それぞれが共有する親を使って効率的に照会することが可能です。1 つのルート インスタンスのすべての子孫も、トランザクション グループとして機能します。これは、グループの 1 つのメンバーをトランザクション内で操作すると、そのルートの子孫すべてがトランザクションに参加することを意味します。このグループでのトランザクション内のすべてのオペレーションが ACID です。

classmethod all(**kwds)ソース

このモデルのすべてのインスタンスに関するクエリをデータストアから返します。

戻り値

エンティティ コレクションからすべてのインスタンスを取得するクエリ。

delete(**kwargs)ソース

このエンティティをデータストアから削除します。

パラメータ

config – このリクエストに使用する datastore_rpc.Configuration。

発生

データをコミットできなかった場合は TransactionFailedError。

dynamic_properties()ソース

インスタンスに定義されたすべての動的プロパティのリストを返します。

classmethod entity_type()ソース

すぐに削除される kind のエイリアス。

classmethod fields()ソース

すぐに削除される properties のエイリアス。

classmethod from_entity(entity)ソース

このモデルのエンティティ表現をインスタンスに変換します。

datastore.Entity インスタンスを cls のインスタンスに変換します。

パラメータ

entity - データストアから直接読み込まれたエンティティ。

発生するエラー

cls がエンティティの正しいモデルでない場合は KindError。

classmethod get(keys, **kwargs)ソース

特定の Model タイプのインスタンスをデータストアから、キーを使用して取得します。

Key オブジェクトと文字列キーをサポートしています(Key オブジェクトへ自動的に変換します)。

特定のインスタンス タイプがデータストアから取得されるようにする場合に便利です。また、どのような種類のオブジェクトを取得しているかをソースコードで明確に示すのにも役立ちます。例:

story = Story.get(story_key)

パラメータ
  • keys – 検索するデータストア エンティティ コレクション内のキー、文字列キー、あるいはキーまたは文字列キーのリスト。

  • config – このリクエストに使用する datastore_rpc.Configuration。

戻り値

指定されたクラスがデータストア内に存在する場合はそのキーに関連付けられた Model インスタンス、存在しない場合は None。キーのリストが指定されている場合、リスト [i] がキー [i] の Model インスタンスであるリスト。インスタンスが存在しない場合は None。

戻り値の型

ひとつのキーが指定されている場合

発生するエラー
  • 取得したオブジェクトのいずれかが「get」の呼び出しに関連付けられた型の

  • インスタンスでない場合は KindError。

classmethod get_by_id(ids, parent=None, **kwargs)ソース

Model クラスのインスタンスを id で取得します。

パラメータ
  • key_names - 単一の id または id のリスト。

  • parent - 取得するインスタンスの親。モデルまたはキーです。

  • config – このリクエストに使用する datastore_rpc.Configuration。

classmethod get_by_key_name(key_names, parent=None, **kwargs)ソース

Model クラスのインスタンスをキーの名前で取得します。

パラメータ
  • key_names - ひとつのキー名またはキー名のリスト。

  • parent - 取得するインスタンスの親。モデルまたはキーです。

  • config – このリクエストに使用する datastore_rpc.Configuration。

classmethod get_or_insert(key_name, **kwds)ソース

Model クラスのインスタンスをトランザクションとして取得または作成します。

これは Python 辞書の setdefault() メソッドと同じように動作します。この場合、指定されたキー名と親を持つ Model インスタンスを最初に取得しようとします。存在しない場合は、(指定された *kwds を使用して)新しいインスタンスを作成して、指定されたキー名で挿入します。

同じ key_name と parent でこのメソッドを呼び出し続けると、指定された *kwds に関係なく、常に同じエンティティが生成されます(実際に同じオブジェクト インスタンスではありません)。指定されたエンティティがなんらかの形で別々に削除された場合、次の呼び出しは新しいエンティティを作成して返します。

'parent' キーワード引数が指定されている場合は、Model インスタンスでなければなりません。この Model クラスが作成されている場合、この Model クラスの新しいインスタンスの親として使用されます。

このメソッドは、特定の識別子の一意のエンティティを 1 つだけ持つ場合に特に便利です。挿入 / 取得がトランザクションとして行われ、一意性が保証されます。

使用例:

class WikiTopic(db.Model):

creation_date = db.DatetimeProperty(auto_now_add=True) body = db.TextProperty(required=True)

# The first time through we’ll create the new topic. wiki_word = ‘CommonIdioms’ topic = WikiTopic.get_or_insert(wiki_word,

body=’This topic is totally new!’)

assert topic.key().name() == ‘CommonIdioms’ assert topic.body == ‘This topic is totally new!’

# The second time through will just retrieve the entity. overwrite_topic = WikiTopic.get_or_insert(wiki_word,

body=’A totally different message!’)

assert topic.key().name() == ‘CommonIdioms’ assert topic.body == ‘This topic is totally new!’

パラメータ
  • key_name – 取得または作成するキー名。

  • **kwds – 指定したキー名のインスタンスがまだ存在していない場合、モデルクラスのコンストラクタに渡すキーワード引数。指定された key_name と parent を持つインスタンスがすでに存在する場合、残りの引数は破棄されます。

戻り値

指定した key_name と parent を持つ Model クラスの既存のインスタンス、あるいは新しく作成されたインスタンス。

発生するエラー
  • 指定された Model インスタンスをトランザクションとして取得や作成

  • できなかった(競合率の高さなどの理由で)場合は TransactionFailedError。

classmethod gql(query_string, *args, **kwds)ソース

GQL クエリ文字列を使用してクエリを返します。

GQL の詳細については、appengine/ext/gql をご覧ください。

パラメータ
  • query_string - 'SELECT * FROM <entity>' 部分が省略された、正しい形式の GQL クエリ文字列

  • * args - クエリ内の数値参照をバインドするために使用されている残りの位置引数。

  • ** kwds - 辞書ベースの引数(名前付きパラメータ用)。

has_key()ソース

このモデル インスタンスに完全キーがあるかどうかを調べます。

完全自己割り当てされた Key を使用しない場合、データがデータストアに保存されるまで id は割り当てられません。ただし、キー名を持つインスタンスが常に完全キーを持ちます。

戻り値

オブジェクトがデータストアに永続化されているか、key または key_name を持っている場合は True、そうでない場合は False。

instance_properties()ソース

dyanmic_properties のエイリアス。

is_saved()ソース

データストア内でエンティティが永続化されているかどうかを調べます。

Model の新しいインスタンスがデータに保存されません。データストアに保存されたオブジェクトやデータストアから読み込まれたオブジェクトは、True 保存状態になります。

戻り値

オブジェクトがデータストアに永続化されている場合は True、そうでない場合は False。

key()ソース

このエンティティの一意のキー。

このプロパティを使用できるのは、このエンティティがすでにデータストアに格納されている場合、あるいは完全キーを持っている場合のみです。したがって、使用できるのはこのエンティティがクエリから取得されて返された場合、あるいは新しいエンティティで put() が初めて呼び出された後、あるいは完全キーが構築されたときに指定された場合です。

戻り値

永続エンティティのデータストア キー。

発生

エンティティが永続的でない場合は NotSavedError。

classmethod kind()ソース

このモデルに使用するデータストアの種類を返します。

モデルの名前をとりあえず使用するだけで、潜在的な衝突を無視します。

parent()ソース

モデル インスタンスの親を取得します。

戻り値

含まれているエンティティの親あるいはコンストラクタで指定されている親です。インスタンスに親がない場合は None。

parent_key()ソース

親のキーを取得します。

このメソッドはデータストアからの潜在的なフェッチを回避するのに便利ですが、インスタンスの親に関する情報を取得します。

戻り値

エンティティの親キー。親がない場合は None。

classmethod properties()ソース

このモデルに定義されているすべてのプロパティの辞書を返します。

put(**kwargs)ソース

このモデル インスタンスをデータストアに書き込みます。

このインスタンスが新しい場合は、データストアにエンティティを追加します。新しくない場合は、このインスタンスを更新します。キーは変わりません。

パラメータ

config – このリクエストに使用する datastore_rpc.Configuration。

戻り値

インスタンスのキー(既存のキーと新しいキーのいずれか)。

発生するエラー

データをコミットできなかった場合は TransactionFailedError。

save(**kwargs)ソース

このモデル インスタンスをデータストアに書き込みます。

このインスタンスが新しい場合は、データストアにエンティティを追加します。新しくない場合は、このインスタンスを更新します。キーは変わりません。

パラメータ

config – このリクエストに使用する datastore_rpc.Configuration。

戻り値

インスタンスのキー(既存のキーと新しいキーのいずれか)。

発生するエラー

データをコミットできなかった場合は TransactionFailedError。

to_xml(_entity_class=google.appengine.api.datastore.Entity)ソース

このモデル インスタンスの XML 表現を生成します。

atom および gd:namespace プロパティがそれぞれのスキーマに従って XML に変換されます。詳細については、次をご覧ください。

http://www.atomenabled.org/developers/syndication/ http://code.google.com/apis/gdata/common-elements.html

exception google.appengine.ext.db.NotSavedErrorソース

ベース: google.appengine.api.datastore_errors.Error

保存済みオブジェクトのアクションが保存されていないオブジェクトに対して実行されたときに発生します。

class google.appengine.ext.db.PhoneNumberProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty

値が PhoneNumber インスタンスであるプロパティ。

data_type

PhoneNumber のエイリアス

class google.appengine.ext.db.PostalAddressProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty

値が PostalAddress インスタンスであるプロパティ。

data_type

PostalAddress のエイリアス

class google.appengine.ext.db.PropertiedClass(name, bases, dct, map_kind=True)ソース

ベース: type

Model クラス プロパティを初期化するためのメタクラス。

モデルのコンテキストで定義されたプロパティを初期化するために使用します。メタクラスを使用することにより、プロパティ記述子の構成の多くが暗黙的になります。このメタクラスを使用することにより、Model クラスの記述子に、どのクラスに属しているか、どの属性に関連付けられているかが通知され、__property_config__ を介して適切な初期化を行うことができます。

重複するプロパティが許可されません。

class google.appengine.ext.db.Property(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: object

Property が Model の属性です。

これにより属性のタイプが定義され、データストア内でどう格納されるかとプロパティ値がどのように検証されるかが決定します。さまざまなプロパティ タイプがさまざまなオプションをサポートし、その結果として検証ルール、デフォルト値などが変わります。最も単純なプロパティの例は StringProperty です。

class Story(db.Model):

title = db.StringProperty()

creation_counter = 41
data_type

str のエイリアス

datastore_type()ソース

self.data_type についての非推奨の後方互換互換性アクセサ メソッド。

default_value()ソース

未割り当て値のデフォルト値。

戻り値

__init__(デフォルト)が提供するデフォルト値。

empty(value)ソース

このプロパティのコンテキストで値が空であるかどうかを調べます。

ほとんどの種類の場合、これは「not value」と同じですが、bool のような種類の場合、対応できないことがあります。したがって、サブクラスがこのメソッドを必要に応じてオーバーライド可能です。

パラメータ

value - この Property に対して検証する値です。

戻り値

この値がこの Property 型のコンテキストで空とみなされる場合は True、そうでない場合は False。

get_updated_value_for_datastore(model_instance)ソース

自動更新型プロパティの新しい値を決定します。

一部のプロパティ(たとえば DateTimeProperty、UserProperty)は、すべての put() でそれぞれの値を任意で更新します。この呼び出しは、そうしたプロパティに対して望まれる新しい値を返さなければなりません。他のすべてのプロパティでは、この呼び出しは AUTO_UPDATE_UNCHANGED を返す必要があります。

パラメータ

model_instance - 新しい値を取得するためのインスタンス。

戻り値

データストアに格納するのに適した形式の新しいモデル値のデータストア表現。または、AUTO_UPDATE_UNCHANGED。

get_value_for_datastore(model_instance)ソース

このプロパティのデータストア表現。

指定されたモデル インスタンスでこのプロパティを検索し、データストア エンティティに格納できる値の適切なデータストア表現を返します。最も重要なことに、参照プロパティのデータストア キー値を取得します。

一部のプロパティ(たとえば DateTimeProperty、UserProperty)は、すべての put() でそれぞれの値を任意で更新します。この呼び出しは、そうしたプロパティの現在の値を返さなければなりません(get_updated_value_for_datastore が新しい値を返します)。

パラメータ

model_instance - このインスタンスからデータストア値を取得します。

戻り値

モデル値をデータストアに格納するのに適した形式にしたデータストア表現。

make_value_from_datastore(value)ソース

このプロパティのネイティブ表現。

値がデータストア エンティティから取得された場合、返される値は、モデル インスタンスで格納するため、変換されている可能性があります。通常、返される値は変更されませんが、エンティティとモデル インスタンスで異なるデータ型を使用する場合は、プロパティ クラスによってこの値がオーバーライドされます。

この API は、get_value_for_datastore() と対称的ではありません。理由は、変換された値を格納するモデル インスタンスがまだ存在しておらず、モデル コンストラクタに渡される値を収集している可能性があるためです。

パラメータ

value - データストア エンティティから取得した値。

戻り値

モデル インスタンス属性として使用するために変換された値。

make_value_from_datastore_index_value(index_value)ソース
validate(value)ソース

指定された値がこのプロパティと互換性があることを表明します。

パラメータ

value - この Property に対して検証する値です。

戻り値

有効な値。変更されていない入力か、あるいは必要な型に適応した入力です。

発生
  • 値がこのプロパティに適していない場合は

  • BadValueError。

exception google.appengine.ext.db.PropertyErrorソース

ベース: google.appengine.api.datastore_errors.Error

存在しないプロパティが参照されているときに発生します。

class google.appengine.ext.db.Query(model_class=None, keys_only=False, cursor=None, namespace=None, _app=None, distinct=False, projection=None)ソース

ベース: google.appengine.ext.db._BaseQuery

Query インスタンスが Models のインスタンス全体で照会します。

モデルクラスを使用したクエリを、次のようにして作成します。

class Story(db.Model):

title = db.StringProperty() date = db.DateTimeProperty()

query = Query(Story)

フィルタと順序でクエリを、次のようにして変更します。

query.filter(‘title =’, ‘Foo’) query.order(‘-date’) query.ancestor(key_or_model_instance)

すべてのクエリがイテレータを返すことができるので、クエリの結果にアクセスするにはクエリでイテレータ操作をします。

クエリ内のストーリーでは:

print story.title

便宜上、すべてのフィルタリング メソッドと順序付けメソッドが「self」を返します。したがって、クエリ インターフェースを使用する最も簡単な方法は、イテレータ行のすべてのフィルタと順序を次のようにカスケードすることです。

for story in Query(story).filter(‘title =’, ‘Foo’).order(‘-date’):

print story.title

ancestor(ancestor)ソース

このクエリの祖先を設定します。

これにより、クエリは指定されたモデル インスタンスの子孫である結果だけを返すよう制限されます。言い換えると、すべての結果はそれぞれの親、あるいは親の親といった具合に祖先を持つことになります。祖先そのものも、結果に含まれる可能性があります。

パラメータ

ancestor - (すでに保存されている)モデルまたはキー

戻り値

メソッド連鎖をサポートするための self。

発生
  • 引数が Key や Model でない場合は TypeError。Key や Model であるが

  • まだ保存されていない場合は NotSavedError。

filter(property_operator, value)ソース

クエリにフィルタを追加します。

パラメータ
  • property_operator - フィルタリングの基準にするプロパティと演算子を持つ文字列。

  • value - フィルタ値。

戻り値

メソッド連鎖をサポートするための self。

発生

プロパティが無効な場合は PropertyError。

is_distinct()ソース
is_keys_only()ソース
order(property)ソース

クエリ結果の順序を設定します。

降順を使用するには、プロパティ名の先頭に「 - 」(マイナス)を追加します。たとえば、「date」ではなく「-date」のようにします。

パラメータ

property - 並べ替えるプロパティ。

戻り値

メソッド連鎖をサポートするための self。

発生

プロパティが無効な場合は PropertyError。

projection()ソース
class google.appengine.ext.db.RatingProperty(verbose_name=None, name=None, default=None, required=False, validator=None, choices=None, indexed=True)ソース

ベース: google.appengine.ext.db._CoercingProperty, google.appengine.ext.db.IntegerProperty

値が Rating インスタンスであるプロパティ。

data_type

Rating のエイリアス

google.appengine.ext.db.Reference

ReferenceProperty のエイリアス

class google.appengine.ext.db.ReferenceProperty(reference_class=None, verbose_name=None, collection_name=None, **attrs)ソース

ベース: google.appengine.ext.db.Property

別のモデルへの多対 1 参照を表すプロパティ。

たとえば、モデル A でモデル B を参照する参照プロパティは、A から B への多対 1 の関係をつくります。A のすべてのインスタンスがひとつの B インスタンスを参照し、すべての B インスタンスが複数の A インスタンスを自身に参照させることができます。

get_value_for_datastore(model_instance)ソース

参照自体ではなく、参照のキーを取得します。

make_value_from_datastore_index_value(index_value)ソース
validate(value)ソース

参照を検証します。

戻り値

有効な値。

発生するエラー

次の理由により BadValueError – - 値が保存されていない。 - オブジェクトが正しいモデルタイプでないので参照できない。

exception google.appengine.ext.db.ReservedWordErrorソース

ベース: google.appengine.api.datastore_errors.Error

予約語にプロパティが定義されている場合に発生します。

google.appengine.ext.db.SelfReference(verbose_name=None, collection_name=None, **attrs)ソース

自己参照を作成します。

モデル上で自己参照型プロパティを宣言するための関数。

class HtmlNode(db.Model):

parent = db.SelfReferenceProperty(‘Parent’, ‘children’)

パラメータ
  • verbose_name - プロパティのわかりやすい名前。

  • collection_name - モデル上のコレクションの名前。

発生

reference_class がパラメータとして設定されている場合は ConfigurationError。

google.appengine.ext.db.SelfReferenceProperty(verbose_name=None, collection_name=None, **attrs)source

自己参照を作成します。

モデル上で自己参照型プロパティを宣言するための関数。

class HtmlNode(db.Model):

parent = db.SelfReferenceProperty(‘Parent’, ‘children’)

パラメータ
  • verbose_name - プロパティのわかりやすい名前。

  • collection_name - モデル上のコレクションの名前。

発生するエラー

reference_class がパラメータとして設定されている場合は ConfigurationError。

class google.appengine.ext.db.StringListProperty(verbose_name=None, default=None, write_empty_list=None, **kwds)ソース

ベース: google.appengine.ext.db.ListProperty

文字列のリストを格納するプロパティ。

最も一般的なタイプの ListProperty の省略形です。

class google.appengine.ext.db.StringProperty(verbose_name=None, multiline=False, **kwds)ソース

ベース: google.appengine.ext.db.Property

複数行または単一行のテキスト プロパティ。

MAX_LENGTH = 1500
data_type

basestring のエイリアス

validate(value)ソース

文字列プロパティを検証します。

戻り値

有効な値。

発生するエラー

プロパティが複数行でないのに値が複数行の場合に BadValueError。

class google.appengine.ext.db.TextProperty(*args, **kwds)ソース

ベース: google.appengine.ext.db.UnindexedProperty

1,500 バイトを超え得る文字列。

data_type

Text のエイリアス

class google.appengine.ext.db.TimeProperty(verbose_name=None, auto_now=False, auto_now_add=False, **kwds)ソース

ベース: google.appengine.ext.db.DateTimeProperty

日付なしで時刻を格納する time プロパティ。

data_type

time のエイリアス

empty(value)ソース

time プロパティが空であるかどうか。

「0:0」(真夜中)は空の値でありません。

戻り値

値が None の場合は True、そうでない場合は False。

get_updated_value_for_datastore(model_instance)ソース

データストアに送信するプロパティの新しい値を取得します。

戻り値

auto_now が True に設定されている変則的なケースで time インスタンスに応じた now()。それ以外の場合は AUTO_UPDATE_UNCHANGED。

get_value_for_datastore(model_instance)ソース

プロパティから値を取得してデータストアに送信します。

datetime.time をモデル インスタンスから取得し、日付が 1/1/1970 に設定された datetime.datetime インスタンスを返します。

詳細については、基本クラスメソッドのドキュメントをご覧ください。

make_value_from_datastore(value)ソース

このプロパティのネイティブ表現。

エンティティから取得した datetime.datetime を受け取り、その時間部分を表す datetime.date インスタンスを返します。

詳細については、基本クラスメソッドのドキュメントをご覧ください。

static now()ソース

now を time datetime 値として取得します。

戻り値

‘now’ の ‘time’ 部分のみです。

google.appengine.ext.db.URLProperty

LinkProperty のエイリアス

class google.appengine.ext.db.UnindexedProperty(*args, **kwds)ソース

ベース: google.appengine.ext.db.Property

組み込み索引と複合索引のどちらからもインデックス登録されていないプロパティ。

TextProperty と BlobProperty はこのクラスから派生しています。

validate(value)ソース

プロパティを検証します。

戻り値

有効な値。

発生するエラー

プロパティが data_type のインスタンスでない場合は BadValueError。

class google.appengine.ext.db.UserProperty(verbose_name=None, name=None, required=False, validator=None, choices=None, auto_current_user=False, auto_current_user_add=False, indexed=True)ソース

ベース: google.appengine.ext.db.Property

ユーザーのプロパティ。

data_type

User のエイリアス

default_value()ソース

user のデフォルト値。

戻り値

auto_current_user または auto_current_user_add が設定されている場合は users.get_current_user() の値。それ以外の場合は None。(しかし、デフォルトの実装ではありません。これは「default」キーワード引数をサポートしていないためです)。

get_updated_value_for_datastore(model_instance)ソース

データストアに送信するプロパティの新しい値を取得します。

戻り値

auto_current_user が設定されている場合は users.get_current_user() の値。それ以外の場合は AUTO_UPDATE_UNCHANGED。

validate(value)ソース

user を検証します。

戻り値

有効な値。

発生するエラー

プロパティが「User」のインスタンスでない場合は BadValueError。

google.appengine.ext.db.allocate_id_range(model, start, end, **kwargs)ソース

特定のエンドポイントを持つ ID の範囲を割り当てます。

これらの ID は割り当てられると、新たに作成したエンティティに手動で指定できます。

データストアの自動 ID アロケータは、既存のエンティティを上書きするキーを新しいエンティティに割り当てないため、指定されたキー範囲に作成されたエンティティは上書きされません。ただし、この範囲に手動で割り当てたキーのエンティティを作成すると、返されたキー範囲の状態によっては、既存のエンティティ(あるいは、別のリクエストで作成された新しいエンティティ)が上書きされる場合があります。

このメソッドは、予約する数値 ID 範囲が存在する場合にだけ使用してください(たとえば、ID のあるエンティティを一括で読み込む場合など)。受信する ID を確認する必要がない場合には、allocate_ids() を使用してください。

パラメータ
  • model – ID シーケンスを指定し、ID を割り当てるテンプレートとして機能する Model インスタンス、Key または文字列。割り当てられた ID は、このキーと同じ親(存在する場合)と種類を持つエンティティでのみ使用してください。

  • start - 割り当てようとする範囲の最初の id。

  • end - 割り当てられる範囲の最後の id。

  • config – このリクエストに使用する datastore_rpc.Configuration。

戻り値

KEY_RANGE_EMPTY、KEY_RANGE_CONTENTION、KEY_RANGE_COLLISION のいずれか。KEY_RANGE_EMPTY でない場合、割り当てられたキー範囲の使用で問題が発生している可能性があります。

google.appengine.ext.db.allocate_ids(model, size, **kwargs)ソース

モデルによって定義された model_key のサイズの ID の範囲を割り当てます。

データストア内に ID の範囲を割り当てて、これらの ID が自動的に新しいエンティティに割り当てられないようにします。モデルキーの ID は、アプリでのみ割り当てることができます。エラーがあると、datastore_errors.Error のサブクラスが発生します。

パラメータ
  • model – ID シーケンスを指定し、ID を割り当てるテンプレートとして機能する Model インスタンス、Key または文字列。返された id は、このキーと同じ親(存在する場合)と種類を持つエンティティでのみ使用してください。

  • size – 割り当てる ID の数。

  • config – このリクエストに使用する datastore_rpc.Configuration。

戻り値

割り当てた範囲の start、end(両端を含みます)。

google.appengine.ext.db.allocate_ids_async(model, size, **kwargs)ソース

ID の範囲を非同期的に割り当てます。

非同期オブジェクトを返す以外は allocate_ids() と同じです。コールがブロックする戻り値で get_result() を呼び出し、結果を返します。

google.appengine.ext.db.check_reserved_word(attr_name)ソース

属性名が予約語である場合に例外が発生します。

パラメータ

attr_name – 予約語であるかどうかを確認するための名前。

発生するエラー

attr_name が予約語であると判断された場合は ReservedWordError。

google.appengine.ext.db.class_for_kind(kind)ソース

kind を実装するためのベースクラスを返します。

提供された kind を実装するクラスを復元するために必要です。

パラメータ

kind – エンティティ kind 文字列。

戻り値

kind のクラス実装。

発生するエラー

kind の実装がない場合は KindError。

google.appengine.ext.db.create_rpc(deadline=None, callback=None, read_policy=0)ソース

データストア呼び出しの構成に使用する rpc を作成します。

注: この関数は下位互換性のために存在します。create_config() を代わりに使用してください。注: 後者が使用する「on_completion」は引数を使用する関数ですが、create_rpc が使用する「callback」は引数のない関数です。

パラメータ
  • deadline – float、呼び出しの期限(秒単位)。

  • callback – この rpc が完了するとトリガーされる、呼び出し可能なコールバック。1 つの引数(返される rpc)を受け入れます。

  • read_policy – flag、EVENTUAL_CONSISTENCY に設定することで結果整合性読み取りが可能になります。

戻り値

datastore.DatastoreRPC インスタンス。

google.appengine.ext.db.delete(models, **kwargs)ソース

Model インスタンスを削除します。

パラメータ
  • models – Model インスタンス、キー、キー文字列、またはそのイテラブル。

  • config – このリクエストに使用する datastore_rpc.Configuration。キーワード引数として指定する必要があります。

発生

データをコミットできなかった場合は TransactionFailedError。

google.appengine.ext.db.delete_async(models, **kwargs)ソース

1 つ以上の Model インスタンス削除の非同期バージョン。

db.delete() と同じですが、非同期オブジェクトが返されます。コールがブロックする戻り値で get_result() を呼び出します。

google.appengine.ext.db.get(keys, **kwargs)ソース

指定されたキーを持つ特定の Model インスタンスをデータストアから取得します。

Key オブジェクトおよび文字列キーはサポートされています(Key オブジェクトへ自動的に変換します)。

パラメータ
  • keys – 検索するデータストア エンティティ コレクション内のキー、文字列キー、あるいは Key または文字列キーのリスト。

  • config – このリクエストに使用する datastore_rpc.Configuration。キーワード引数として指定する必要があります。

  • 戻り値 - ひとつのキーが指定された場合: キーに関連付けられた Model インスタンス(データストア内に存在する場合)。そうでない場合は None。キーのリストが指定されている場合、リスト [i] がキー [i] の Model インスタンスであるリスト。インスタンスが存在しない場合は None。

google.appengine.ext.db.get_async(keys, **kwargs)ソース

指定された Model インスタンスをデータストアから非同期的に取得します。

db.get() と同じですが、非同期オブジェクトが返されます。コールがブロックする戻り値で get_result() を呼び出し、結果を返します。

google.appengine.ext.db.get_indexes(**kwargs)ソース

アプリケーション インデックスとそれぞれの状態を取得します。

パラメータ

config – このリクエストに使用する datastore_rpc.Configuration。キーワード引数として指定する必要があります。

戻り値

(Index, Index.[BUILDING|SERVING|DELETING|ERROR])タプルのリスト。インデックスの状態は以下のとおりです。

Index.BUILDING: インデックスを作成中であるため、クエリに使用できません。 Index.SERVING: インデックスがクエリを処理する準備ができています Index.DELETING: インデックスを削除しています Index.ERROR: インデックスの BUILDING 状態でエラーが発生しました。

google.appengine.ext.db.get_indexes_async(**kwargs)ソース

アプリケーション インデックスとそれぞれの状態を非同期的に取得します。

get_indexes() と同じですが、非同期オブジェクトが返されます。コールがブロックする戻り値で get_result() を呼び出し、結果を返します。

google.appengine.ext.db.model_from_protobuf(pb, _entity_class=google.appengine.api.datastore.Entity)ソース

モデル インスタンスをプロトコル バッファからデコードします。

パラメータ

pb – モデル インスタンスのプロトコル バッファ表現。entity_pb.EntityProto または entity_bp.EntityProto の str エンコードになります

戻り値

プロトコル バッファをデコードした結果生じる Model インスタンス

google.appengine.ext.db.model_is_projection(model_instance)ソース

指定された db.Model インスタンスにエンティティ全体の射影のみが含まれる場合に true を返します。

google.appengine.ext.db.model_to_protobuf(model_instance, _entity_class=google.appengine.api.datastore.Entity)ソース

モデル インスタンスをプロトコル バッファとしてエンコードします。

パラメータ

model_instance – エンコードする Model インスタンス。

戻り値

モデル インスタンスの entity_pb.EntityProto 表現

google.appengine.ext.db.put(models, **kwargs)ソース

1 つ以上の Model インスタンスを格納します。

パラメータ
  • models – Model インスタンスまたは Model インスタンスのリスト。

  • config – このリクエストに使用する datastore_rpc.Configuration。キーワード引数として指定する必要があります。

戻り値

モデルがインスタンスの場合は Key、モデルがリストの場合はモデルと同じ順序の Key のリスト。

発生

データをコミットできなかった場合は TransactionFailedError。

google.appengine.ext.db.put_async(models, **kwargs)ソース

Model インスタンスを非同期的に格納します。

db.put() と同じですが、非同期オブジェクトが返されます。コールがブロックする戻り値で get_result() を呼び出し、結果を返します。

google.appengine.ext.db.query_descendants(model_instance)ソース

モデル インスタンスのすべての子孫のクエリを返します。

パラメータ

model_instance – の子孫を見つける Model インスタンス。

戻り値

指定されたモデル インスタンスを祖先として持つすべてのエンティティを

取得するクエリ。通常の祖先クエリとは異なり、このクエリに祖先自体は含まれません。

google.appengine.ext.db.save(models, **kwargs)ソース

1 つ以上の Model インスタンスを格納します。

パラメータ
  • models – Model インスタンスまたは Model インスタンスのリスト。

  • config – このリクエストに使用する datastore_rpc.Configuration。キーワード引数として指定する必要があります。

戻り値

モデルがインスタンスの場合は Key、モデルがリストの場合はモデルと同じ順序の Key のリスト。

発生するエラー

データをコミットできなかった場合は TransactionFailedError。

google.appengine.ext.db.to_dict(model_instance, dictionary=None)ソース

モデルを辞書に変換します。

パラメータ
  • model_instance – このモデル インスタンスに辞書を作成します。

  • dictionary – dict インスタンス、またはモデル値を受け取るための互換性。辞書は元の値がクリアされていません。dictionary.update を使用した場合と同じです。dictionary が None の場合、新しい辞書インスタンスが作成されて返されます。

戻り値

エンティティが None の場合はモデル インスタンスの値が入力された、新しい適切な辞書、それ以外の場合は entity。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Python の App Engine スタンダード環境