F对象用于同行数据的比较
Q对象用于表示一些逻辑关系,与或非等等
复制manage.py创建一个新文件在里面修改main方法
#all(
if __name__ == '__main__':
main()
from user.models import *
print('#'*50)
user2 = User.objects.all()
print('user2的类型是:',type(user2))
for user in user2:
print(user)
)
#exclude()
if __name__ == '__main__':
main()
print('#' * 30)
from user.models import *
#返回条件不成立的数据
user3 = User.objects.exclude(id=1)
print('user2的类型是:', type(user3))
print(user3)
user = user3[0]
print(user)
filter,以及模糊查询
if __name__ == '__main__':
main()
print('#' * 30)
from user.models import *
user3 = User.objects.filter(id=1)
print('user2的类型是:', type(user3))
print(user3)
user = user3[0]
print(user)
# user3 = User.objects.filter(id=1)与下面的相等
user4 = User.objects.filter(id__exact=1)
print(user4)
#模糊查询
#包含
user4_n = User.objects.filter(username__contains='1')
#查询以'name1'开头的用户
user4_ns = User.objects.filter(username__startwith='name1')
#查询密码以1结尾的
user4_ns = User.objects.filter(password__endswith='1')
#范围查询
user4_in =User.objects.filter(username__in=["name2","name3"])
#查询在第一次创建后,发生修改的对象
from django.db.models import F
user_s = User.objects.filter(updateDatatime__gt=F('creatDatatime'))
print(user_s)
from django.db.models import Q
#查询年龄大于8岁的男性
print(User.objects.filter(age=8, gender=0))#第一种
print(User.objects.filter(Q(age=8) & Q(gender=8)))
#查询年应大于8岁的男性,和年龄大于5岁的女性
print(User.objects.filter(Q(age=8, gender=0)| Q(age=5, gender=1)))
#get
if __name__ == '__main__':
main()
print('#'*30)
from user.models import *
user1 = User.objects.get(id=1)
print(user1)
try:
User.objects.get(id=1000)#没有这个对象
except:
print('没有满足条件的数据')
try:
User.objects.get(isdelete=0)#多个对象满足
except:
print('多个对象满足条件,抛出异常')