QuerySet(查詢結果集對象):從數據庫中查詢出來的結果一般是一個集合,這個集合叫做 QuerySet,也就是指服務器上的url里面的查詢內容。Django會對查詢返回的結果集QuerySet進行cache緩存,這是為了提高查詢效率。也就是說,在你創建一個QuerySet對象的時候,Django並不會立即向數據庫發出查詢命令,只有在你需要用到這個QuerySet的時候才會這樣做。
Objects是django實現的mvc中的m,Django中的模型類都有一個objects對象,它是一個Django中定義的QuerySet類型的對象,它包含了模型對象的實例。
關於Django objects.all()、objects.get()與objects.filter()直接區別
示例代碼:
ret=UserInfo.objects.all()
- 1
all返回的是QuerySet對象,程序並沒有真的在數據庫中執行SQL語句查詢數據,但支持迭代,使用for循環可以獲取數據。
ret=UserInfo.objects.get(id='1')
- 1
get返回的是Model對象,類型為列表,說明使用get方法會直接執行sql語句獲取數據
ret=UserInfo.objects.filter()
Person.objects.get(name
=
"WeizhongTu"
)
# 名稱為 WeizhongTu 的一條,多條會報錯
get是用來獲取一個對象的,如果需要獲取滿足條件的一些人,就要用到
filter
Person.objects.
filter
(name
=
"abc"
)
# 等於Person.objects.filter(name__exact="abc") 名稱嚴格等於 "abc" 的人
