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()

 

posted on 2018-01-08 10:59  Alan_chow  阅读(180)  评论(0编辑  收藏  举报

导航