django对数据库进行条件查询的时候通常格式是 字段名+两个下划线+查询方法
这些查询方法 get和filter都可以使用。但是要注意get每次返回的值是唯一的否则报错。
all:
返回全部数据,返回的是queryset对象,
lt:
返回小于设定的目标值的queryset:
lte:
返回小于等于目标值的queryset:
gt:
返回大于目标值的queryset:
gte:
返回大于等于目标值的queryset:
contains:
返回‘包含’该字符内容的数据的queryset,并且区分大小写:
icontains:
返回包含该字符的queryset,这个是不区分大小写。(使用sqlite3数据库的时候这两个方法一模一样,没区别)
基本所有的筛选方法都是有i不区分大小写,没有i区分
exact:
返回精确匹配该值的queryset,contains是包含,这个是等于的关系,同时区分大小写;
iexact:
不区分大小写,这个跟contains加不加i正好相反
startswith:
起始匹配,区分大小写,+i不区分
endswith:
末尾匹配,区分大小写+i不区分
同时他们两个也可以混合使用:
in:
可以同时查找多个复合条件的数据,并返回queryset,相当于批量的精确查找:
range:
去范围内的值(两边都是闭合状态,两侧都包含)只要是包含这个范围内的值都会返回:
isnull:
返回时空值的数据True为空,False非空:
Q:
多条件联合查询,使用前需要from django.db.models improt Q导入模块
使用Q()传入相应的条件,然后把Q传入查询的函数中,可以传入多个Q,然后进行查询,q1,q2中间是逗号的时候是取交集,丨 为并集。