Django中必知必会13条

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')

猜你喜欢

转载自www.cnblogs.com/womenzt/p/12445682.html
今日推荐