神奇的双下划线查询参数
刚才Manager的方法大多是针对字段的确定值在进行crud,如果是一个范围的话,管理器没有开设接口,而是用额双下划线参数的方式。
例如:年龄大于18岁的数据
sql: select name,age from user where age>18;
orm: models.User.objects.filter(age_ _gt=18)
小于 models.User.objects.filter(age_ _lt=18)
大于等于: models.User.objects.filter(age_ _gte=18)
小于等于:models.User.objects.filter(age_ _lte=18)
18 or 28 or 40:models.User.objects.filter(age_ _in= [18,28,40] )
大于等于18小于等于50:models.User.objects.filter(age_ _range=[18,50] )
模糊查询:
sql: select name,age from user where name like "%n%"
orm: models.User.objects.filter(name_ _contains="n" )
再忽略大小写 models.User.objects.filter(name_ _icontains="n" ),i--ignore
以什么开头、结尾
models.User.objects.filter(name_ _startswith="n" )
models.User.objects.filter(name_ _endswith="n" )
日期单独查年月日
models.User.objects.filter(register_time_ _month="1" )
models.User.objects.filter(register_time_ _year="2020" )
models.User.objects.filter(register_time_ _day="1" )