django模型01

1.开发流程

- 配置数据库
- 定义模型类
- 生成迁移文件
- 执行迁移生成数据表
- 使用模型类进行增删改查操作

2.ORM

- **概述**:对象->关系->映射
- **任务**
    -- 根据对象类型生成表结构
    -- 将对象、列表的操作转换为sql语句
    -- 将sql语句查询到的结果转换为对象、列表
- **优点**
    -- 极大减轻了开发人员的工作量、不需要面对因数据库的变更而修改代码

3.定义模型

-** 模型、属性、表、字段间的关系**
  -- 一个模型类在数据库中对应一张表,在模型类中定义的属性对应该模型对照表中的一个字段
- **定义属性**
  -- **字段类型**
      CharField(max_length=):字符串类型,默认html表单textinput
      DecimalField(max_digits=None, decimal_places=None)
        -使用python的Decimal实例表示的十进制浮点数
        -第一个参数:位数总数;第二个参数:小数点后的数字位数
      DateField([auto_now=False,auto_now_add=False])
        - auto_now: 每次保存对象时,自动设置该字段为当前时间,用于“最后一次修改”的时间戳
        - auto_now_add:  当对象第一次创建时自动设置当前时间,用于创建的时间戳
   -- **关系**
      - **分类**
          - ForeignKey: 一对多,将字段定义在多的端中
          - ManyToManyField: 多对多,将字段定义在两端中
          - oneToOneField: 一对一,将字段定义在任意一端中
       - **用一访问多**
          - 格式:对象.模型类小写_set(grade.students_set)
       - **1v1**
          - 格式:对象.模型类小写(grade.students)
       - **访问id**
          - 格式:对象.属性_id(student.sgrade_id)
-** 创建模型类**
- **元选项**
  -- 在模型类中定义的Meta类,用于设置元信息
      - db_table: 定义数据表名,推荐使用小写字母,数据表名默认为项目名_类名小写
      - ordering:对象的默认排序字段,获取对象的列表时使用(ordering['id']升序,ordering['-id']降序);排序会增加数据库的开销

4. 模型成员

posted on 2021-04-17 23:13  micromatrix  阅读(35)  评论(0编辑  收藏  举报

导航