Django查詢集QuerySet及兩大特性

2022-07-18 06:39:12 字數 1262 閱讀 3306

django的orm中存在查詢集的概念。

查詢集,也稱查詢結果集、queryset,表示從資料庫中獲取的物件集合。

當呼叫如下過濾器方法時,django會返回查詢集(而不是簡單的列表):

也就意味著查詢集可以含有零個、乙個或多個過濾器。過濾器基於所給的引數限制查詢的結果。

從sql的角度講,查詢集與select語句等價,過濾器像where、limit、order by子句。

判斷某乙個查詢集中是否有資料:

一、惰性執行

建立查詢集不會訪問資料庫,直到呼叫資料時,才會訪問資料庫,呼叫資料的情況包括迭代、序列化、與if合用

例如,當執行如下語句時,並未進行資料庫查詢,只是建立了乙個查詢集tooks

tooks= tooks.objects.all()
繼續執行遍歷迭代操作後,才真正的進行了資料庫的查詢

for took in

tooks:

print(took.name)

二、快取

使用同乙個查詢集,第一次使用時會發生資料庫的查詢,然後django會把結果快取下來,再次使用這個查詢集時會使用快取的資料,減少了資料庫的查詢次數。

情況一:如下是兩個查詢集,無法重用快取,每次查詢都會與資料庫進行一次互動,增加了資料庫的負載。

情況二:經過儲存後,可以重用查詢集,第二次使用快取中的資料。

django實戰 查詢(二)查詢集

查詢集表示從資料庫中獲取的物件集合,在管理器上呼叫某些過濾器方法會返回查詢集,查詢集可以含有零個 乙個或多個過濾器。過濾器基於所給的引數限制查詢的結果,從sql的角度,查詢集和select語句等價,過濾器像where和limit子句。返回查詢集的過濾器如下 返回單個值的過濾器如下 count 返回當...

Django入門 查詢集QuerySet介紹

在文章 django入門 通過模型類查詢mysql資料庫基本操作中,我們知道函式all filter exclude order by 等的返回值都是queryset型別,對該型別的返回值可以繼續使用上述查詢函式。queryset型別具有一些特性 在使用返回值型別為queryset的函式進行查詢時,...

Django框架學習 入門 查詢集(2 4)

查詢集表示從資料庫中獲取的物件集合,在管理器上呼叫某些過濾器方法會返回查詢集,查詢集可以含有零個 乙個或多個過濾器。過濾器基於所給的引數限制查詢的結果,從sql的角度,查詢集和select語句等價,過濾器像where和limit子句。返回查詢集的過濾器如下 返回單個值的過濾器如下 count 返回當...