Django中get()和fiter()的區別


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" 的人


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM