Django中get和filter區別


get和filter()的區別。

1、get

輸入參數:get的參數只能是model中定義的哪些字段,只支持嚴格匹配。

Entry.objects.get(id='foo') # raises Entry.DoesNotExist

返回參數:get 返回值是一個定義的model對象,只有一條記錄返回的時候才正常,也就說明get的查詢字段必須是主鍵或者唯一約束的字段。當返回多條記錄或者是沒有找到記錄的時候都會拋出異常

 

2、filter

輸入參數:filter的參數可以是字段也可以是擴展的where查詢關鍵字,如in,like,返回QuerySet包含與給定查找參數匹配的新對象。

返回參數:filter返回QuerySet對象,有沒有匹配的記錄都可以。

filter有緩存數據的功能,第一次查詢數據庫並生成緩存,下次再調用filter方法的話,直接取得緩存的數據,get方法每次執行都是直接查詢數據庫的。


免責聲明!

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



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