1 增加
增加数据有两种方法。
1)save
通过创建模型类对象,执行对象的save()方法保存到数据库中。
2)create
通过模型类.objects.create()保存。
2 删除
删除有两种方法
1)模型类对象delete
2)模型类.objects.filter().delete()
3 修改
修改更新有两种方法
1)save
修改模型类对象的属性,然后执行save()方法
2)update
使用模型类.objects.filter().update(),会返回受影响的行数
4 查询
2.1 基本查询
get 查询单一结果,如果不存在会抛出模型类.DoesNotExist异常。
all 查询多个结果。
count 查询结果数量。
2.2 过滤查询
实现SQL中的where功能,包括
- filter 过滤出多个结果
- exclude 排除掉符合条件剩下的结果
- get 过滤单一结果
1)相等
exact:表示判等
2)模糊查询
contains:是否包含。
startswith、endswith:以指定值开头或结尾。
在这些运算符前加上i表示不区分大小写,如iexact、icontains、istartswith、iendswith.
3) 空查询
isnull:是否为null。
4) 范围查询
in:是否包含在范围内
5)比较查询
- gt 大于 (greater then)
- gte 大于等于 (greater then equal)
- lt 小于 (less then)
- lte 小于等于 (less then equal)
不等于的运算符,使用exclude()过滤器
6)日期查询
year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算。
F对象
之前的查询都是对象的属性与常量值比较,两个属性怎么比较呢? 答:使用F对象,被定义在django.db.models中
Q对象
多个过滤器逐个调用表示逻辑与关系,同sql语句中where部分的and关键字。
聚合函数
使用aggregate()过滤器调用聚合函数。聚合函数包括:Avg 平均,Count 数量,Max 最大,Min 最小,Sum 求和,被定义在django.db.models中。
2.3 排序
使用order_by对结果进行排序
2.4 关联查询
由一到多的访问语法:
一对应的模型类对象.多对应的模型类名小写_set