ORM高级应用
- 查询
obj_li=models.UserInfo.objects.filter(id__gt=1,id__lt=5)
for item in obj_li:
print(item.name)
测试2
张三
李四
obj_li=models.UserInfo.objects.filter(username__contains="test")
for item in obj_li:
print(item.name)
测试1
多对多测试
obj_li=models.UserInfo.objects.filter(username__startswith="z")
for item in obj_li:
print(item.name)
张三
朱六
QuerySet与惰性机制
所谓惰性机制:Publisher.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行。
-
QuerySet特点:
-
<1> 可迭代的
-
<2> 可切片
-
切片
print(objs[1])
print(objs[1:4])
print(objs[::-1])
- F查询操作
models.UserInfo.objects.update(password=F('password')+100)
- Q查询操作
obj_li=models.UserInfo.objects.filter(Q(username__startswith='t')|Q(username__endswith='c'))
for item in obj_li:
print(item.name)
测试1
测试2
多对多测试
- related_name反向查找
user_obj=models.UserInfo.objects.filter(name='李四').first()
user_obj.clauser.clear()