orm操作
查询
filter()
数组判断
- 大于 id__gt=30
- 大于等于 id__gte ==30
- 小于 id__gt==30
- 在 id__in=[11,22,33]
字符串
包含:link__contains="xxx"
开始/ 结束 link__startwith/endwith
多个条件 filter(a,b)
exclude() :
不包含 与filter相反
values(xxx:需要的字段)
将QUerySet内部变为字典
values_list(xxx:需要的字段)
将QUerySet内部变为元祖
first()
第一条:返回对象 不存在返回None
exists()
是否存在 return Boolean
order_by("id","-id")
按照字段排序
一对多
表结构
class admin(models.Model):
    name=models.CharField(max_length=127)
    pwd=models.CharField(max_length=127)
    rid=models.ForeignKey(to="Depart",on_delete=models.CASCADE)
class Depart(models.Model):
    name=models.CharField(max_length=127)
    od=models.IntegerField(default=0)
如果有多个Foreign关联同一张表 通过related_name=““xx1” 重命名定向
value(xx1__name),xx1_id=1
- 创建关系 直接添加: rid_id
    admin.objects.create(
        name="11",
        pwd="1212",
        rid_id=1
    )
- 创建关系 通过关联查询 : rid
    admin.objects.create(
        name="testname",
        pwd="1212",
        rid=Depart.objects.filter(name="销售部").first()
    )
关联id不存在,则报错。
跨表:查找rid相关联的字段
admin.objects.filter(name="李雷",rid__name=="销售部")
连表字段:
admin.objects.all().value/value_list  ("name","rid__name")
查询时链表
list=admin.objects.all().select_related("rid")
for obj in list:
   print(obj.rid.id,obj.rid.name)
取值时判断(性能差)
list=admin.objects.all()
   print(obj.rid__id,objrid__name)
查询depart下的admin账号(反向查询)
Depart.objects.all().values("name","admin","admin__name")
多对多
class boy(models.Model):
    name = models.CharField(max_length=127)
    def __str__(self):
        pass
class girl(models.Model):
    name = models.CharField(max_length=127)
    class Meta:
                verbose_name = "girl"
                verbose_name_plural = "girl"
class B2g(models.Model):
    name = models.CharField(max_length=127)
    bid=models.ForeignKey(to="boy",on_delete=models.CASCADE)
    gid=models.ForeignKey(to="girl",on_delete=models.CASCADE)
创建多对多关系
B2g.object.create(bid_id=1,gid_id=1)
通过对象
B2g.object.create(bid=object,gid=obj)
查询对象
- 通过链表查询
B2g.objecs.filter(bid__name="xx").select_related("gid")
连接到boy的信息和girl的信息
- 通过values/values_list
B2g.objecs.filter(id="xx").values("id","bid__name","gid__name")
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号