一、条件查询
1、filter(条件)
语法:MyModel.objects.filter(属性1=值1,属性2=值2)
作用:返回包含此条件的全部的数据集
返回值:QuerySet容器对象,内部存放MyModel实例。可以当作数组来处理!
说明:当多个属性在一起时为“与”关系。
2、exclude(条件)
语法:MyModel.objects.exclude(条件)
作用:返回不包含此条件的全部的数据集
3、get(条件)
语法:MyModel.objects.get(条件)
作用:返回满足条件的唯一一条数据
说明:该方法只能返回一条数据
二、非等值查询——查询谓词
定义:做更灵活的条件查询时需要使用查询谓词,类属性+'__'+谓词
说明:每一个查询谓词是一个独立的查询功能
1、__exact:等值匹配
示例:
Author.objects.filter(id__exact=1)
#等同于select * from author where id = 1
2、__contains:包含指定值
3、__startswith:以XXX开始
4、__endswith:以XXX结束
5、__gt:大于指定值
6、__gte:大于等于
7、__lt:小于
8、__lte:小于等于
9、__in:查找数据是否在指定范围内
eg:
Author.objects.filter(country__in=['中国','日本','韩国'])
#等同于select * from author where country in ('中国','日本','韩国')
10、__range:查找数据是否在指定的区间范围内
Author.objects.filter(age__range=()35,50))