Django之ORM之双下划线查询

神奇的双下划线查询参数 

刚才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" )

上一篇:python测试开发django-78.ORM查询之extra


下一篇:python测试开发django-77.ORM如何添加 DateTimeField 不显示毫秒