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

  • 相关阅读:
    利用matplotlib进行数据可视化
    《操作系统》课程笔记(Ch11-文件系统实现)
    《操作系统》课程笔记(Ch10-文件系统)
    《数据库原理》课程笔记 (Ch06-查询处理和优化)
    《计算机网络》课程笔记 (Ch05-网络层:控制平面)
    《计算机网络》课程笔记 (Ch04-网络层:数据平面)
    《计算机网络》课程笔记 (Ch03-运输层)
    东南大学《软件测试》课程复习笔记
    《数据库原理》课程笔记 (Ch05-数据库存储结构)
    《操作系统》课程笔记(Ch09-虚拟内存)
  • 原文地址:https://www.cnblogs.com/pythonkids/p/8241624.html
Copyright © 2020-2023  润新知