import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "about_orm.settings")
import django
django.setup()
from app01 import models
all() 获取所有的数据 QuerySet 对象列表
ret = models.Person.objects.all()
get() 获取一个对象 对象 不存在或者存在多个就报错
ret = models.Person.objects.get(name='alexdsb')
filter() 获取满足条件的所有对象 QuerySet 对象列表
ret = models.Person.objects.filter(name='alexdsb')
exclude() 获取不满足条件的所有对象 QuerySet 对象列表
ret = models.Person.objects.exclude(name='alexdsb')
values QuerySet [{}]
values() 不写参数 获取所有字段名和值
values('name','get') 指定字段 获取指定字段名和值
ret = models.Person.objects.values('name','age')
for i in ret:
print(i,type(i))
values_list QuerySet [()]
values_list() 不写参数 获取所有的字段的值
values_list('name','age') 指定字段 获取指定字段的值
ret = models.Person.objects.values_list('age','name')
for i in ret:
print(i,type(i))
order_by 排序 默认升序 降序 字段名前加- 支持多个字段
ret = models.Person.pbjects.all().order_by('-age','pk')
reverse 对已经排序的结果进行反转
ret = models.Person.objects.all().order_by('pk')
ret = models.Person.objects.all().order_by('pk').reverse()
distinct mysql不支持按字段去重
ret = models.Person.objects.all().distinct()
ret = models.Person.objects.values('name','age').distinct()
count() 计数
ret = models.Person.objects.all().count()
ret = models.Person.objects.filter(name='alexdsb').count()
first 取第一个元素 取不到是None
ret = models.Person.objects.filter(name='xx').first()
last 取最后后一个元素
ret = models.Person.objects.values().last()
exists 是否存在 存在是True
ret = models.Person.objects.filter(name='xx').exists()
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "about_orm.settings")
import django
django.setup()
from app01 import models
ret = models.Person.objects.filter(pk_gt=3) # gt greater than 大于
ret = models.Person.objects.filter(pk_lt=3) # lt less than 小于
ret = models.Person.objects.filter(pk_gte=3) # gte greater than equal 大于等于
ret = models.Person.objects.filter(pk_lte=3) # lte less than equal 小于等于
ret = models.Person.objects.filter(pk_range=[1,4]) # 范围
ret = models.Person.objects.filter(pk_in=[1,4]) # 成员判断
ret = models.Person.objects.filter(name_in=['alexdsb','xx'])
ret = models.Person.objects.filter(name_contains='x') # contains 包含
ret = models.Person.objects.filter(name_icontains='X') # ignore contains 忽略大小写
ret = modles.Person.objects.filter(name_starswith='x') # 以什么开头
ret = models.Person.objects.filter(name_istartswith='X') # 忽略大小写
ret = models.Person.objects.filter(name__endswith='dsb') # 以什么开头
ret = models.Person.objects.filter(name__iendswith='DSB') # 以什么开头
ret = modles.Person.objects.filter(phone_isnull=Fales) # _isnull = False 不为Null
ret = models.Person.objects.filter(birth_year='2020')
ret = models.Person.objects.filter(birth_contains='2020-11-02')