django-数据库关系

一对一关联反向查询

  • 查询:

    • 表层面:

      • 查询所有是蝴蝶的毛毛虫

      • MaoMao.objects.filter(hudie__wings__gt=0):反向查询

        • 用的是隐藏起来哪个关联表字段进行查询 就是反向查询
      • Hudie.maomao : 正向

    • 数据层面

      • m1 = MaoMaoobjects.get()
      • m1.hudie
        • hudie不是一条m1的字段,他是django做出来隐藏的

多对一查询

  • 查询一个球队的所有球员
    • 数据层面
      • t1.player_set.all() 反向
      • _set == models.objects
    • 表层面:
      • Team.objects.filter(player__name__startswith=’刘’) 反向
      • Player.objects.filter(team__name=’恒中’) 正向
  • 修改
    • 单独修改简单:直接字段赋值,save即可
    • 批量修改
      • set.update(team=t2) 直接为这些set数据 批量修改
      • 直接立竿见影到数据库,不需要save
  • 删除:
    • on_delete
      • models.CASCADE:球队删除,球员也跟着消失
      • models.SET_NULL:球队删除,球员外键为null,数据还在
        • null=True,
  • 我是偶像
  • 你们是粉丝

作业

  • 学生表,老师表
  • 三个多对一例子:
    • 增删改查
    • 反向查询的语句:表层面、数据层面 反向查询 念出来语句
  • 在django中三种实现原生SQL的方式
    • excute
    • raw
    • curser.excute

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]