Django(20)模糊查询

(1)模糊查询之contains

说明:如果要包含%无需转义,直接写即可。

例:查询姓名包含’华’的学生。

Student.objects.filter(name__contains='华') 

(2)模糊查询之startswith、endswith

例:查询姓名以’文’结尾的学生

Student.objects.filter(name__endswith='文')

以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact、icontains、istartswith、iendswith.

(3)模糊查询之isnull

例:查询个性签名不为空的学生。

# 修改Student模型description属性允许设置为null,然后数据迁移 description = models.TextField(default=None, null=True, verbose_name="个性签名")
# 添加测试数据 NSERT INTO student.db_student (name, age, sex, class, description, created_time, updated_time) VALUES ('刘德华', 17, 1, '407', null, '2020-11-20 10:00:00.000000', '2020-11-20 10:00:00.000000');
# 代码操作 tudent_list =Student.objects.filter(description__isnull=True)

(4)模糊查询之in

例:查询编号为1或3或5的学生

Student.objects.filter(id__in=[1, 3, 5])

(5)模糊查询之比较查询

  • gt 大于 (greater then)
  • gte 大于等于 (greater then equal)
  • lt 小于 (less then)
  • lte 小于等于 (less then equal)

例:查询编号大于3的学生

Student.objects.filter(id__gt=3) 

(6)模糊查询之日期查询

year、month、day、week_day、hour、minute、second:对日期时间类型的属性进行运算。

例:查询2010年被添加到数据中的学生。

Student.objects.filter(born_date__year=1980)

例:查询2016年6月20日后添加的学生信息。

from django.utils import timezone as datetime student_list = Student.objects.filter(created_time__gte=datetime.datetime(2016,6,20),created_time__lt=datetime.datetime(2016,6,21)).all() print(student_list)

posted @ 2021-12-02 20:00  下个ID见  阅读(243)  评论(0)    收藏  举报