數據
由於在創建模型的時候,是繼承的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,返回數據的值,不返回字段名,可指定要返回的字段
更多方法見源碼或官方文檔