larken

勤奋的人生才有价值

导航

第一章:模型层model layer

 

1.模型和字段
(1)基本的原则如下:
    每个模型在Django中的存在形式为一个Python类
    每个模型都是django.db.models.Model的子类
    模型的每个字段(属性)代表数据表的某一列
    Django将自动为你生成数据库访问API
(2)模型字段fields
Django不允许下面两种字段名:
    与Python关键字冲突。这会导致语法错误。例如:
    class Example(models.Model): pass = models.IntegerField() # 'pass'是Python保留字!
    字段名中不能有两个以上下划线在一起,因为两个下划线是Django的查询语法。例如:
    class Example(models.Model): foo__bar = models.IntegerField() # 'foo__bar' 有两个下划线在一起!
(3)常用字段类型
字段类型的作用:
    决定数据库中对应列的数据类型(例如:INTEGER, VARCHAR, TEXT)
    HTML中对应的表单标签的类型,例如<input type=“text” />
    在admin后台和自动生成的表单中最小的数据验证需求
这里有如何上传文件和图片的方法:
    1.FileField:
    2.ImageField
    3.FilePathField
    4.UUIDField:
2.关系类型字段
    一、多对一(ForeignKey)
    二、多对多(ManyToManyField)
    三、一对一(OneToOneField)
字段的参数:null,blank,default,help_text,primary_key,unique
3.多对多中间表详解
    一、默认中间表
    二、自定义中间表
    三、使用中间表
4.模型的元数据Meta
    强调:每个模型都可以有自己的元数据类,每个元数据类也只对自己所在模型起作用。
5.模型的继承
    一、 抽象基类:
    二、 多表继承
    三、 代理模型
    四、 多重继承
6.用包来组织模型
7.查询操作
    查询操作是Django的ORM框架中最重要的内容之一。
    一、创建对象
    二、保存对象
        1. 保存外键和多对多字段
    三、检索对象
        1. 检索所有对象
        2. 过滤对象
        3. 检索单一对象
        4. 其它QuerySet方法
        5. QuerySet使用限制
        6. 字段查询
        7. 跨越关系查询
        8. 使用F表达式引用模型的字段
        9. 主键的快捷查询方式:pk
        10. 在LIKE语句中转义百分符号和下划线
        11. 缓存与查询集
    四、使用Q对象进行复杂查询
    五、比较对象
    六、删除对象
    七、复制模型实例
    八、批量更新对象
    九、关系的对象
        1. 一对多(外键)
        2. 多对多
        3. 一对一
        4. 反向关联是如何实现的?
        5. 通过关联对象进行查询
    十、使用原生SQL语句
8.查询集API
    一、QuerySet何时被提交
    二、QuerySet
    三、返回新QuerySets的API
        1. filter()
        2. exclude()
        4. order_by()
        12. all()
9.不返回QuerySets的API
    1. get()
    2. create()
    6. count()
    11. first()
    15. update()
    16. delete()
10.字段查询参数及聚合函数
    1. exact
    3. contains
    5. in
    10. startswith
    12. endswith
    聚合函数
        5. Count
        6. Max
        7. Min

 

posted on 2018-09-11 22:02  larken  阅读(1742)  评论(0编辑  收藏  举报