B-01 Django-第二部分(熟练掌握)-模型(Model)设计-开始&介绍
Django-第二部分(熟练掌握)-模型(Model)设计-开始&介绍
文章目录
目标
前面已经介绍了如何快速入门,现在开始熟练掌握一些知识
- 了解ORM
- 了解Django模型作用
- 了解Django模型设计步骤
回顾
一、Django生命周期
之前我们介绍Django的时候,讲解了Django的生命周期,现在我们来回顾一下这个生命周期。如下图所示:
说明:
- 客户在页面输入url访问服务器,服务器接受请求后,先通过路由(URL)控制分发到对应的视图(View)处理,
- 视图(View)在进行逻辑处理的时候,通过模型(Models)从数据库获取对应数据。
- 模型(Model)获取数据后,返回给视图。
- 视图(View)将模型获取的数据,渲染到模板(Template)
- 最后将渲染好的模板(Template)返回给客户浏览器展示。
一、ORM与Django模型
1.1、ORM概述
1.1.1、ORM是什么
ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。
1.1.2、ORM的优缺点
- 优点:摆脱复杂的SQL操作,适应快速开发;让数据结构变得简洁;数据库迁移成本更低(如从mysql->oracle)
- 缺点:性能较差、不适用于大型应用;复杂的SQL操作还需通过SQL语句实现
1.1.3、ORM的原理
- 第一步:根据对象的类型生成表结构、
- 第二步:将对象、列表的操作转换为sql语句、
- 第三步:将sql语句查询到的结果转换为对象、列表
1.2、Django模型
1.2.1、模型(Model)是什么
简而言之即数据模型。模型不是数据库本身(比如数据库里的数据),而是抽象描述数据的构成和逻辑关系。模型是您的数据唯一而且准确的信息来源。它包含您正在储存的数据的重要字段和行为。一般来说,每一个模型都映射一个数据库表。当定义好Model模型后,Django的接口会自动帮你在数据库生成相应的数据表(table)。这样就不用自己通过SQL语言创建数据库表。
1.2.2、模型(Model)的特定
- 每个模型都是一个 Python 的类,这些类继承
django.db.models.Model
- 模型类的每个属性都相当于一个数据库的字段。
- 综上诉说,Django 给你一个自动生成访问数据库的 API;请参阅 进行查询。
1.2.3、模型(Model)的优缺点
- 优点:Django对各种数据库提供了很好的支持,Django为这些数据库提供了统一的调用API,可以根据不同的业务需求选择不同的数据库
1.3、Django与ORM对应关系
1.3.1、定义字段与表之间对应关系
1.3.2、数据记录操作之间对应关系
说明:
- 整体来说,我们从直接操作数据库,变成了操作Python对象和方法了。
二、模型(Model)设计流程:
2.1、设计流程过程说明
说明
第一步:配置使用数据库
- a、配置使用不同数据库
第二步:定义模型类
- a、字段使用
- b、如何定义
- c、元选项
- d、模型类属性与应用
第三步:迁移数据
- a、如果迁移数据
- b、常见问题
第四步:访问使用数据
- a、数据操作
下面我们将按照这个步骤来逐步掌握模型
三、官方指导
Django 提供了一个抽象的模型 (“models”) 层,为了构建和操纵你的Web应用的数据。阅读下面内容了解更多:
模型: 模型介绍 | 字段类型 | 索引 | Meta 选项 | Model 类
QuerySet: 执行查询 | QuerySet 方法参考 | 查询表达式
Model 实例: 实例方法 | 访问关联的对象
迁移: 迁移概述 | 操作参考 | SchemaEditor | 编写迁移
高级: 管理员 | 原始 SQL | 事务 | 聚合 | 搜索 | 自定义字段 | 多个数据库 | 自定义查询 | 查询表达式 | 条件表达式 | 数据库函数
其它: 支持的数据库 | 旧数据库 | 提供初始化数据 | 优化数据库访问 | PostgreSQL 的特定功能
[指导文档](%3Ca href=“https://docs.djangoproject.com/zh-hans/2.1/ref/models/”%3Ehttps://docs.djangoproject.com/zh-hans/2.1/ref/models/%3C/a%3E)