Django的ORM
一、创建表:
1、单表
2、关联表:
一对一:
一对多:
多对多:
二、操作表:
增:——create
方式一:
1、models.Rep1.objects.create(name=“jack”,age=18)#--键值对方式
2、dic={“name”:“jack”,“age”:18}
models.Rep1.objects.create(**dic)#--字典的形式,推荐使用
存在表的一对多关系怎么办呢?
1、models.Rep1.objects.create(name=“jack”,age=18,city_id=1)
2、models.Rep1.objects.create(name=“jack”,age=18,city=obj)#--推荐使用
存在表的多对多关系怎么办呢?
Django通过自动创建,采用以下方法增加数据
add ()#绑定关系
remove()#取消关系
(1)通过Rep1绑定City表——正向查询
name=models.Rep1.objects.filter(id=2)[0]
citys=models.City.objects.filter(id__gt=2)#id大于2的Queryset集合
name.City.remove(*citys)
(2)通过City绑定Rep1表——反向查询
city=models.City.objects.filter(id=3)[0]#id大于2的Queryset集合
names=models.Rep1.objects.filter(id__gt=2)
city.rep1_set.add(*names)#如果表里面就一个字段,用:“表名小写_set”,完成关系建立
city.rep1_set.remove(*names)
不通过Django通过自动创建,手工自己创建第三张表关联其他两张表,建立多对多关系,采用以下方法增加数据
创建第三张表:
class Rep1_to_City():
name=models.ForeignKey("city")
city=models.ForeignKey("name")
class Meta:
unique_together=["name","city"]
定义函数,插入数据:
models.Rep1_to_City.objects.create(Rep1_id=2,
City_id=3)
方式二:
1、obj=Rep1(name="jack",age=18)
obj.save()
2、obj=Rep1()
obj.name="jack"
obj.age=18
obj.save()