Sanic二十六:Sanic + tortoise-orm 之Model、QuerySet提供的查詢方法


 

數據

 

由於在創建模型的時候,是繼承的tortoise.Model,看看tortoise.Model都提供了什么方法,如果發現又不滿足使用場景的情況,再來修改或者補充

 

看看有用的方法

1、filter:使用給定的過濾條件創建 QuerySet,即查詢滿足指定條件的數據

2、exclude:使用給定的排除過濾條件創建 QuerySet,即查詢不滿足給定條件的數據

3、all:從根據查詢條件獲得的結果中獲取全部數據

4、first:從根據查詢條件獲得的結果中獲取第一條數據

 

使用示例

 

其實從源碼可以看出,這些個查詢方法都是調的 cls._meta.manager.get_queryset() 方法,那么我們可以看看這個方法到底來自於哪里,都做了什么

從源碼看,都是使用的 QuerySet 這個類,那么這個類有哪些方法呢

關鍵方法一:_clone,執行所有操作都會先使用_clone獲取一個新的QuerySet對象

關鍵方法二:_filter_or_exclude,用於執行 filter 和 exclude 兩個查詢邏輯

 

具體提供的查詢方法

1、 filter 和 exclude 上面已經演示過了,這里就不演示了

2、all()其實就是調用_clone方法獲取克隆對象,first()其實就是查詢集里面執行了個limit1

3、count,統計數量

 

4、exists:判斷查詢集是否存在

5、explain:查看執行計划

6、get:作用和filter().first()一樣

7、get_or_none:有數據則直接獲取,沒數據則返回None

8、group_by和order_by

9、limit,獲取指定的條數

10、offset:偏移

11、values:返回字典,不返回對象,自動序列化

12、values_list,返回數據的值,不返回字段名,可指定要返回的字段

 

更多方法見源碼或官方文檔

 


免責聲明!

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



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