1.常用的模型字段类型
https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types
2.字段的常用参数
官方文档:https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-options
3,常用查询
通过模型类上的管理器来构造QuerySet
模型类上的管理器是啥?
模型类 .objects
QuerySet 表示数据库中对象的集合
等同于select语句. 惰性的
案例:
get(**kwargs)根据给定的条件,获取一个对象,如果有多个对象符合,保存
all()获取所以记录, 返回queryset
first() 获取第一条,返回的是对象
last()获取最后一条,返回的是对象
思考:排序规则? 默认通过主键,通过_meta设置
filter(**kwargs) 根据给定的条件,获取一个过滤后的queryset,多个条件使用and链接
exclude(**kwargs) 跟filter使用方法一致,作用相反,它是排除
多条件的OR链接,用到Q对象,django.db.models.Q
values(*fields) 返回一个queryset , 返回一个字典列表,而不是数据对象
only(*fields)返回querySet , 对象列表,注意only一定包含主键字段
defer(*fields) 返回一个QuerySet , 作用和only相反
order_by(*fields) 根据给定的字段来排序,默认是顺序,字段名前加“-”代表反序
切片 和 python的列表切片用法相似,不支持复索引,数据量大时不用步长
*** 切片过后,不再支持,附件过滤条件与排序
exact
iexact
contains
icontains
in
range
gt 等于
gte 大于等于
lt 小于
lte 小于等于
startswith 大小敏感
istartswith 大小写不敏感
endswith
iednswith
isnull True False 对应 IS NULL IS NOT NULL
聚合
from django.db.models import Count, Avg, Max, Min, Sum
通过queryset的aggregate方法
Student.objects.aggregate(age_avg=Avg(‘age‘)) #计算平均年龄
count 统计数量
Avg 平均值
Max, Min, Sum
分组,聚合
结合Values,annotate 和聚合方法一起实现
查询几个男生,几个女生
原文:https://www.cnblogs.com/wdty/p/10435384.html