23、ORM映射
UserInfo.objects.get(id=2)
Django命令 — orm映射—-源代码 所以Django开发效率虽然比源代码高,但是不如源代码稳定,快速
select * from user_userinfo where id=2
24、修改管理器
from django.db import models
25、模糊查询filter,exclude(过滤器)
obj1 = UserInfo.objects.filter(user_name__contains='王')
#得到user_name中有王的对象列表
obj2 = UserInfo.objects.filter(user_name__endswith='王')
#得到user_name中以王结尾的对象列表
obj3 = UserInfo.objects.filter(id__gte=5)
# 得到id>=5的对象列表 gt:> gte:>= lt :<
obj4 = UserInfo.objects.get(id=5)
#id=5的对象
obj5 = UserInfo.objects.filter(id__exact=5)
#id=5的对象
obj6 = UserInfo.objects.filter(id__in=[1,3,5])
id 为1,3,5的对象组
obj7 = UserInfo.objects.exclude(id=3)
除了id=3的对象组
obj8 = UserInfo.objects.filter(password='123456',id__gt=2).exclude(phone=188)
密码为123456 id >=2 并且phone不等于188
obj = UserInfo.objects.filter(Q(password='123456') & Q(id__gt=2) & ~Q(phone=188))
Q是寻找字段的函数语句 ~表示求反
密码为123456 id >=2 并且phone不等于188
# obj = UserInfo.objects.aggregate(Sum('id'))
aggregate 返回一个键值对的字典类型。。 使用了聚合函数求id的和
# obj = UserInfo.objects.aggregate(Max('id'))
求id的最大值
# print(UserInfo.objects.count())
输出对象的数量
obj = UserInfo.objects.filter(id__gt=F('phone'))
F 是字段之间的比较 id>phone的输出 。得到一个对象组
context ={'obj':obj}
以键值结构构成,为了向前端传送数据,前端用'obj'接受
return render(request,'search_user.html',context=context)
返回请求,前端文件,和传递的数据
obj = UserInfo.objects.all()[1:3] 左闭右开,表示的是类似切片
person = UserInfo.objects.get(id=1)
查询id=1的对象
obj = person.useraddress_set.all()
查到id=1的全部地址