一、模型层
模型层负责和数据库之间进行通信
 
 
二、Django配置mysql数据库
1.Django默认的数据库是sqllite3,将其更改为mysql数据库需要进行对应配置
1.安装mysqlclient [版本1.3.13以上]
pip3 install mysqlclient (有一些其他依赖需要安装,可能会报错)
 
2.也可以使用pymysql pip3 install 无依赖 ,可以选一种使用
 
 
2.创建数据库
进入mysql数据库
create database 数据库名 default charset utf8
通常数据库名与项目名保持一致
settings.py里进行数据库配置
修改DATABASES配置项内容 由sqllite3变为mysql
ENGINE:django.db.backends.sqllite 将sqllite改为mysql
#新增数据库配置
'NAME':'数据库名',
'USER':'数据库连接用户',
'PASSWORD':'密码',
'HOST':'连接地址'
'POST':'端口'
 
三、什么是模型
模型是一个Python类,他是由Django.db.models.Model派生出的子类, 类继承了models.Model,他就是一个模型
一个模型类代表数据库中的一张表
模型类中每一个类属性都代表数据库中的一个字段
模型是数据交互的接口,是表示和操作数据库的方法和方式
 
四、ORM框架
1.定义:ORM (object relational mapping) 即对象关系映射,它是一种程序技术,允许你使用类和对象对数据库进行操作,
从而避免通过sql语句操作数据库
 
2.作用
1.建立模型类和表直接对对应关系,允许我们通过面向对象的方式来操作数据库
2.根据设计的模型类生成数据库中的表格
3.通过简单的配置就可以进行数据库的切换
 
3.优点
1.只需要面相对象编程,不需要面相数据库编写代码
对数据库的操作都转换成对类属性和方法的操作
不用编写各种数据库的sql语句
 
2.实现了数据模型与数据库的解耦,屏蔽了不同数据库操作上的差异
不在关注是mysql、oracle等数据库等内部细节
通过简单的配置就可以更换数据库,而不需要修改代码
 
4.缺点
1.对于复杂业务,使用成本较高
2.根据对象的操作转换SQL语句,根据查询的结果转换对象,在映射过程中有性能损失
 
 
 
五、模型示例
1.代码格式
  在models.py里面导导包:from django.db import models

  class class_name(models.Model):
字段名 = models.字段类型(字段选项)
示例:创建一个 Book,添加名字和价格字段
模型类=数据库表,类属性=数据库字段
 
 
第一个中文字符串是传递给verbose_name / . verbose_name = 'name' 用于admin后台显示字段信息
 
六、数据库迁移
迁移时Django同步对模型所做更改(添加字段、删除模型等)到数据库模式到方式
 
1.生成迁移文件 -执行 python3 manage.py makemigrations
将应用下models.py文件生成一个中间文件,保存在应用的migrations文件夹中 2.执行迁移脚本程序 -执行 。 python3 manage.py migrate
执行迁移程序实现迁移,将每个应用下的migrations目录中的中间文件,同步到数据库
 
1.生成的中间文件
2.会将对应数据推送到到数据库,生成的数据库表名 格式 应用名 + 类名(小写)
 

9-模型层及ORM介绍的更多相关文章

  1. Django模型层之ORM

    Django模型层之ORM操作 一 ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软 ...

  2. 六、模型层(ORM)

    六.模型层(ORM) Django中内嵌了ORM框架,不需要直接编写SQL语句进行数据库操作,而是通过定义模型类,操作模型类来完成对数据库中表的增删改查和创建等操作. O是object,也就类对象的意 ...

  3. 模型层之ORM、数据库和单表操作

    一.ORM简介 ORM是“对象-关系-映射”的简称,一般指持久化数据和实体对象的映射 1.1 什么是“持久化” 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中( ...

  4. 8 Django 模型层(1)--orm简介

    ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...

  5. Django中模型层中ORM的单表操作

    ORM概念: MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员 ...

  6. django 模型层(orm)05

    目录 配置测试脚本 django ORM基本操作 增删改查 Django 终端打印SQL语句 13条基本查询操作 双下滑线查询 表查询 建表 一对多字段数据的增删改查 多对多字段数据的增删改查 基于对 ...

  7. Django中模型层中ORM的多表操作

    ORM的多表创建(一对一.一对多,多对多): 1模型创建 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等 ...

  8. Django之模型层-了解ORM

    ORM(对象-关系-映射)简单使用 ORM实现了数据模型与数据库的解耦合,即数据模型的设计不需要指定特定的数据库,通过python代码可以直接对数据库实现增删改查 MySQL语法 #sql中的表 #创 ...

  9. (day53)五、模型层(ORM)、settings文件配置

    目录 一.settings配置 (一)测试文件配置 (二)查看对应sql语句 二.模型表数据的增删改查 (一)创建数据 (1)create方法 (2)利用对象的绑定方法 (二)修改数据 (1)利用qu ...

随机推荐

  1. BootStrap详解

    1. bootstrap的安装和使用 官网: https://getbootstrap.com/ 中文网: https://www.bootcss.com/ 菜鸟驿站教程网: https://www. ...

  2. Luogu1879 [USACO06NOV]玉米田Corn Fields (状压DP)

    曾经放弃的坑,都是坑 #include <iostream> #include <cstdio> #include <cstring> #include <a ...

  3. 【游记】CSP 2021 J2

    这次是第一次参加CSP的复赛,所以考的就很LJ. \(DAY-\infty\) 到 \(DAY-14\) 知道了自己苟过了初赛,像个SB一样. (我初赛66分,旁边那位63.5,cao着线过去的) \ ...

  4. java学习第三天常用类.day11

    工具类如何设计,在开发中有两种设计: 工具方法:静态方法的使用 非静态的方法使用: 使用单列模式,为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 保证在整个应用中某一个类有且只有一个实例(一 ...

  5. PHP代码审计学习-php安全基础

    PHP代码审计-php安全基础 php.ini选项 register_globals php>=4.2.0,php.ini 的 register_globals 选项的默认值预设为 Off,当 ...

  6. pod资源的健康检查-liveness探针的exec使用

    使用探针的方式对pod资源健康检查 探针的种类 livenessProbe:健康状态检查,周期性检查服务是否存活,检查结果失败,将重启容器 readinessProbe:可用性检查,周期性检查服务是否 ...

  7. openstack中Nova组件简解

    一.Nova组件概述 计算节点通过Nova Computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,nova之间通信通过rabbitMQ队列进行通信. Nova位于Openstack架 ...

  8. docker容器数据卷的使用

    什么是容器数据卷 docker的理念回顾 将应用和运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对于数据的要求,是希望能够持久化的! 就好比,你安装一个MySQL,结果你把容器删了,就相当于 ...

  9. KingbaseES 参数 - ignore_char_null_check

    KingbaseES 基于PostgreSQL进行了大量的Oracle兼容性开发,为了能同时兼容Oracle 和 PG 的特性,增加参数进行控制.以下介绍 KingbaseES 下特有的参数 igno ...

  10. docker-compose入门--翻译

    在这一页,你将学习到如何构建一个简单的python的web应用,并通过Docker compose来运行.这个应用程序使用的是Flask框架,并维护着一个存储在reids里的点击计数器.由于这个案例使 ...