Apa itu Set Kueri Django?

Ketika saya melakukan ini,

>>> b = Blog.objects.all()
>>> b

Saya mengerti ini:

>>>[<Blog: Blog Title>,<Blog: Blog Tile>]

Saat saya menanyakan jenis b itu,

>>> type(b)

Saya mengerti ini:

>>> <class 'django.db.models.query.QuerySet'>

Apa artinya ini? Apakah tipe datanya seperti dict, list, dll?

Contoh bagaimana saya dapat membangun struktur data seperti QuerySet akan dihargai.

Saya ingin tahu bagaimana Django membangun QuerySet itu (detailnya yang mengerikan).


person gath    schedule 13.01.2011    source sumber
comment
Anda dapat melihat kode sumber Django untuk melihat rincian yang mengerikan. Selain itu, QuerySet hanyalah sebuah objek seperti banyak objek lainnya yang terkadang berperilaku seperti daftar.   -  person Deniz Dogan    schedule 13.01.2011
comment
Apa itu: docs.djangoproject.com/en/dev/ref/ models/querysets Untuk cara kerjanya, seperti yang telah disebutkan, lihat kode sumbernya.   -  person Felix Kling    schedule 13.01.2011
comment
Di sinilah QuerySet didefinisikan dalam Django: github.com /django/django/blob/master/django/db/models/query.py   -  person Edward D'Souza    schedule 31.05.2013


Jawaban (4)


Ya, ini hanyalah tipe lain, dibuat seperti jenis lainnya.

person Ignacio Vazquez-Abrams    schedule 13.01.2011
comment
Jawaban hanya tautan? Itu seharusnya menjadi larangan besar… - person o0'.; 24.05.2020

django queryset seperti namanya, pada dasarnya adalah kumpulan ( sql) kueri, dalam contoh Anda di atas print(b.query) akan menampilkan kueri sql yang dihasilkan dari panggilan Django filter Anda.

Karena kumpulan kueri malas, kueri basis data tidak langsung dilakukan, namun hanya jika diperlukan - ketika kumpulan kueri dievaluasi. Hal ini terjadi misalnya jika Anda memanggil metode __str__ ketika Anda mencetaknya, jika Anda memanggil list() padanya, atau, yang paling sering terjadi, Anda mengulanginya (for post in b..). Kemalasan ini akan menyelamatkan Anda dari melakukan kueri yang tidak perlu dan juga memungkinkan Anda untuk merangkai kumpulan kueri dan filter misalnya (Anda dapat memfilter kumpulan kueri sesering yang Anda mau).

person Bernhard Vallant    schedule 13.01.2011

QuerySet mewakili kumpulan objek dari database Anda. Itu dapat memiliki nol, satu atau banyak filter. Filter mempersempit hasil kueri berdasarkan parameter yang diberikan. Dalam istilah SQL, QuerySet sama dengan pernyataan SELECT, dan filter adalah klausa pembatas seperti WHERE atau LIMIT.

https://docs.djangoproject.com/en/1.8/topics/db/queries/

person Harshit Garg    schedule 17.11.2015

QuerySet adalah daftar objek model tertentu, QuerySet memungkinkan Anda membaca data dari database

person Pythonsguru    schedule 23.08.2019