【django】基础条件查询
一. 基本查詢
get查詢單?結果,如果不存在會拋出模型類.DoesNotExist異常。
FilmInfo.objects.get(fid=1) <FilmInfo: django> FilmInfo.objects.get(fid=20) film.models.FilmInfo.DoesNotExist: FilmInfo matching query does not exist.all查詢多個結果。
FilmInfo.objects.all() <QuerySet [<FilmInfo: django>, <FilmInfo: 金剛狼>, <FilmInfo: 奪冠>, <FilmInfo: 我和我的家人>, <FilmInfo: shell>, <FilmInfo: 我愛你中國>, <FilmInfo: 我愛你china>]>count查詢結果數量。
FilmInfo.objects.count() 7二. 過濾查詢
實現SQL中的where功能,包括
1、filter過濾出多個結果
2、exclude排除掉符合條件剩下的結果
3、get過濾單?結果 對于過濾條件的使?,上述三個?法相同,故僅以filter進?講解。
過濾條件的表達語法如下:
屬性名稱__?較運算符=值
屬性名稱和?較運算符間使?兩個下劃線,所以屬性名不能包括多個下劃線
案例:
4、查詢編號為1的影片
exact:表示等于。
5、查詢影?名包含’我’的影?
FilmInfo.objects.filter(fname__contains='我') <QuerySet [<FilmInfo: 我和我的家人>, <FilmInfo: 我愛你中國>, <FilmInfo: 我愛你china>]>6、查詢影?以’冠’結尾的影?
startswith、endswith:以指定值開頭或結尾;以上運算符都區分??寫;
在這些運算符前加上i表示不區分??寫,如iexact、icontains、istartswith、iendswith.
isnull:是否為null
7、查詢影?為空的影?
8、查詢影?編號為1或3或5的影?
in:是否包含在范圍內
9、查詢影?編號?于3的影?
gt?于 (greater then)
gte?于等于 (greater then equal)
lt?于 (less then)
lte?于等于 (less then equal)
10、查詢2020年發表的影?
year、month、day、week_day、hour、minute、second:對?期時間類型的屬性進?運算。
11、查詢2019年1?1?后發表的影?
FilmInfo.objects.filter(pub_date__gt='2019-1-1') <QuerySet [<FilmInfo: 金剛狼>, <FilmInfo: 奪冠>, <FilmInfo: 我和我的家人>, <FilmInfo: 我愛你中國>, <FilmInfo: 我愛你china>]>總結
以上是生活随笔為你收集整理的【django】基础条件查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【django】聚合函数和排序函数
- 下一篇: 【django】配置URLconf