对象属性与继承关系:

  1. 对象属性
  2. 1. 显示属性
  3. - 开发者手动定义的,直接看的到的
  4. 2. 隐式属性
  5. - 系统根据需求,自动创建的对象
  6. - objects 它是model.Manager对象
  7. - 当我们手动创建了Manager对象的时候,它就不会自动生成了
  8. Manager
  9. 1. 创建模型
  10. - 自己书写方法创建
  11. - 创建对象的时候可以对字段指定默认值
  12. 2. get_queryset 获取结果集的方法
  13. - get_queryset().filter().exclude
  14. 模型继承
  15. 1. 默认模型就是允许继承的,但是默认的继承处理方式不是很合理
  16. - 默认在父类中定义的字段会存在父类的表中,子类的数据通用部分会存在父表中,子类特有数据会在子表中,子类通过外键进行级联
  17. - 默认方式比较垃圾,效率比较低
  18. - 数据库优化策略
  19. - 避免IO
  20. - 避免关系过多级联
  21. 2. 开发中,需要将父类抽象化,在元信息中使用abstract=True
  22. - 抽象化的父类不会再数据库生成表了
  23. - 子类会将父类中的通用数据,复制到子表中
  24. django_migration
  25. 1. 作用,用来记录数据库迁移的
  26. 2. 每次迁移都会在数据库中进行一个记录
  27. 3. 每次生成迁移的时候,都会去库中进行检索上一次的迁移记录
  28. 4. 如果我们复用数据库的时候,需要删除迁移记录
  29. 模型关系
  30. 1. 1:1
  31. - OneToOneField
  32. - 通过外键实现
  33. - 对外键添加唯一约束
  34. - 人和身份证
  35. - 在身份证中声明关系(身份证关联到人)
  36. - 默认情况下,删除人,关联的身份证会自动被删除
  37. - 删除身份证,人不受影响的
  38. - 主表 Person 从表 IDCard),声明关系的表就是从表
  39. - 级联数据获取
  40. - 从获取主, 关系是直接声明的,它是一个显性属性
  41. - 主获取从, 关系字段是隐性属性,对象.关系模型名 (小写)
  42. 2. 1:M
  43. - 级联数据获取
  44. - 从获取主,(多获取一),显性属性,直接获取
  45. - 主获取从, 一获取多,隐性属性,和model.Manager同源
  46. - 也支持查询的各种过滤
  47. - 对象.关联对象_set. all
  48. - all ,exclude,last,first,filter,get
  49. 3. N:M
  50. - 底层是通过两个外键实现,两个外键存在关系表中
  51. - UNIQUE(XX,YY) 存储的数据不能同时相等 1,1 1,2 2,1 2,2
  52. - 删除数据的时候会删除自己的数据和关系表中的数据
  53. - 级联数据获取
  54. - 通过商品获取购买者(从获取主),也是一个集合,类似model.Manager 也可以进行filterexcludeall
  55. - 通过购买者获取所有商品(从主获取从),隐性属性 对象.关联对象_set. all fliter exclude
  56. 1. on_delete
  57. - CASECADE 默认,默认删除级联数据
  58. - PROTECT 保护模式,当存在级联数据的时候,删除会抛出,保护异常,不存在级联数据的时候,是允许删除的
  59. - SETXXX
  60. - NULL 值本身允许为空
  61. - DEFAULT 字段本身有默认值
  62. - 具体值 具体值
  63. homework
  64. 1. 模型关系搞清

Django学习总结- ③的更多相关文章

  1. 今天主要推荐一下django学习的网址!

    前言:每个月忙碌的头20天后,在上班时间投入到django理论学习的过程中,花了差不多3天时间简单的研究了一下django,着实废了我不少脑细胞. 采用虫师前辈的一张图和话: 如果你把这过程梳理清晰了 ...

  2. Django 学习笔记之四 QuerySet常用方法

    QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...

  3. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

  4. Django学习系列之Form基础

     Django学习系列之Form基础 2015-05-15 07:14:57 标签:form django 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追 ...

  5. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  6. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

  7. django学习之Model(二)

    继续(一)的内容: 1-跨文件的Models 在文件头部import进来,然后用ForeignKey关联上: from django.db import models from geography.m ...

  8. Python框架之Django学习

    当前标签: Django   Python框架之Django学习笔记(十四) 尛鱼 2014-10-12 13:55 阅读:173 评论:0     Python框架之Django学习笔记(十三) 尛 ...

  9. Django 学习笔记(二)

    Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...

  10. Django 学习笔记(五)模板标签

    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...

随机推荐

  1. Winodws SNMP服务安装和配置(Windows 2003 & 2008 R2)

    简单网络管理协议SNMP服务起着代理的作用,它会收集可以向SNMP管理站或控制台报告的信息.您可以使用SNMP服务来收集数据,并且在整个公司网络范围内管理基于Windows Server 2003.M ...

  2. python统计文档中词频

    python统计文档中词频的小程序 python版本2.7 效果如下: 程序如下,测试文件与完整程序在我的github中 #统计空格数与单词数 本函数只返回了空格数 需要的可以自己返回多个值 def ...

  3. 浅析MySQL 5.7组复制技术(Group Replication)

          Group Replication is know as an up to date HA(High Availablity) solution which is supported in ...

  4. Angular.js进阶

    1.常用指令 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UT ...

  5. 慎使用sql的enum字段类型

    在sql的优化中,会有同学提到一点:使用enum字段类型,代替其他tinyint等类型.以前这也是不少人喜欢优化的,但是现在细想,是非常不合理的. 优点: 1.可以设置区间范围,比如设置性别:1男2女 ...

  6. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序

    读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...

  7. php的基础知识(四)

    14.数组: 索引数组: 下标就是数字开始的. $arr = ['a','b','c',1,2,3]; 关联数组: $arr = [ 'a' => 'b', 'c' => 'd'; 'e' ...

  8. sourcetree .git 强制忽略指定文件不提交

    在公司写项目,大部分都会用到 svn 或 git 提交代码到服务器.我们公司用的GIT,每个程序员有自己的独立分支,各写各的代码互不冲突,最终合并到主分支再解决相同代码冲突问题.这时候会遇到一些配置文 ...

  9. FMX相关

    ListView的ItemAppearance的样式效果表: Navicat for 插入图片步骤: 如果最后一条记录的图片有问题,可以先插入下一条再导入图片.

  10. Docker学习——gitlab部署

    Gitlab 下载镜像 docker pull hub.c.163.com/gutenye/gitlab-ce:latest 查看镜像 docker images 启动容器 宿主机和docker的端口 ...