私がこれをするとき、
>>> b = Blog.objects.all()
>>> b
私はこれを手に入れます:
>>>[<Blog: Blog Title>,<Blog: Blog Tile>]
b
のタイプを照会すると、
>>> type(b)
私はこれを手に入れます:
>>> <class 'Django.db.models.query.QuerySet'>
これは何を意味するのでしょうか? dict
、list
などのデータ型ですか?
QuerySet
のようなデータ構造を構築する方法の例は高く評価されます。
DjangoがそのQuerySet
をどのように構築するかを知りたいです(悲惨な詳細)。
はい、それは単なる別のタイプです 、ビルド済み 他のすべてのタイプと同様に 。
Django queryset は、その名前が示すように、基本的に(sql)クエリのコレクションです。上記の例では、print(b.query)
は、Django filter
呼び出し。
クエリセットは lazy であるため、データベースクエリはすぐには実行されませんが、必要な場合のみ-クエリセットがevaluatedの場合にのみ実行されます。これは、たとえば、印刷時に___str__
_メソッドを呼び出した場合、その上でlist()
を呼び出した場合、または主に何が起こるかを繰り返します(_for post in b..
_) 。この遅延により、不要なクエリを実行する必要がなくなり、たとえばクエリセットとフィルターを連鎖させることができます(クエリセットを必要なだけフィルターに掛けることができます)。
QuerySetは、データベースからのオブジェクトのコレクションを表します。フィルターは0個、1個、または多く持つことができます。フィルターは、指定されたパラメーターに基づいてクエリ結果を絞り込みます。 SQL用語では、QuerySetはSELECTステートメントと同等であり、フィルターはWHEREやLIMITなどの制限句です。
QuerySetは、特定のモデルのオブジェクトのリストです。QuerySetを使用すると、データベースからデータを読み取ることができます