码迷,mamicode.com
首页 > 其他好文 > 详细

django模型01

时间:2021-04-20 14:20:53      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:映射   增删改   参数   date   sql语句   排序   对照表   ace   获取对象   

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. 模型成员

django模型01

标签:映射   增删改   参数   date   sql语句   排序   对照表   ace   获取对象   

原文地址:https://www.cnblogs.com/cenjw/p/14672484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!