Python - Django - ORM 双下划线
id 字段:
id__lt:id 小于,id__gt:id 大于
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(id__gt=1, id__lt=4) # 查询 1<id<4 的数据 print(ret)
运行结果:
id__in=[]:获取所有 id 为该列表元素的数据
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(id__in=[1, 3, 4]) # 查询 id 为 1、3、4 的数据 print(ret)
运行结果:
id__range=[]:获取 id 范围的数据
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(id__range=[2, 4]) # 获取 id 为 2-4 的数据 print(ret)
运行结果:
字符串字段:
字段名__contains:获取字段中含有指定字符串的数据
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(name__contains="ac") # 获取 name 字段包含 ac 的数据 print(ret)
运行结果:
字段名__icontains:获取字段中含有指定字符串的数据,大小写不敏感
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(name__icontains="Ac") # 获取包含 name 字段包含 Ac 的数据(大小写不敏感) print(ret)
运行结果:
字段名__startswith:获取字段中以指定字符串开头的数据
字段名__istartswith:获取字段中以指定字符串开头的数据,大小写不敏感
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(name__startswith="Ja") # 获取 name 字段中以 Ja 开头的数据 print(ret) ret = models.Human.objects.filter(name__istartswith="j") # 获取 name 字段中以 j 开头的数据,忽略大小写 print(ret)
运行结果:
字段名__endswith:获取字段中以指定字符串结尾的数据
字段名__iendswith:获取字段中以指定字符串结尾的数据,大小写不敏感
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(name__endswith="m") # 获取 name 字段中以 m 结尾的数据 print(ret) ret = models.Human.objects.filter(name__iendswith="Ne") # 获取 name 字段中以 Ne 结尾的数据,大小写不敏感 print(ret)
运行结果:
date 字段:
date字段名_year:获取该 date 字段中符合 year 条件的数据
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(birthday__year=2005) # 获取 birthday 字段中 year 为 2005 的数据 print(ret)
运行结果:
date字段名_month:获取该 date 字段中符合 month 条件的数据
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(birthday__month=8) # 获取 birthday 字段中 month 为 8 的数据 print(ret)
运行结果:
date字段名_day:获取该 date 字段中符合 day 条件的数据
import os if __name__ == '__main__': # 加载 Django 项目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite2.settings") # 导入 Django,并启动 Django 项目 import django django.setup() from app01 import models ret = models.Human.objects.filter(birthday__day=15) # 获取 birthday 字段中 day 为 15 的数据 print(ret)
运行结果: