一、模型层
模型层负责和数据库之间进行通信
 
 
二、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. uni-app 从0 到 1 制作一个项目,收藏等于学会

    uni-app 是使用 vue.js 开发的所有前端应用框架,开发者编写的一套代码,可以发布到 ios.android.web ,以及各种小程序平台. 一.创建uni-app 1.hBuilderX ...

  2. 使springAOP生效不一定要加@EnableAspectJAutoProxy注解

    在上篇文章<springAOP和AspectJ有关系吗?如何使用springAOP面向切面编程>中遗留了一个问题,那就是在springboot中使用springAOP需要加@EnableA ...

  3. 详解MySQL隔离级别

    一个事务具有ACID特性,也就是(Atomicity.Consistency.Isolation.Durability,即原子性.一致性.隔离性.持久性),本文主要讲解一下其中的Isolation,也 ...

  4. Docker问题:"docker build" requires exactly 1 argument.

    今天在搭建Docker私有仓库的时候.提示错误:"docker build" requires exactly 1 argument. 原因是因为(少了一个 '.' , '.' 代 ...

  5. Windows 系统 PostgreSQL 手工安装配置方法

    自从2020年底开始接触 PostgreSQL 以来就喜欢上了这个数据库,个人感觉比 MySQL 好用,多表联合查询性能好很多,同时也不存在 SQLServer 的版权授权费用问题.搭配 .NET 开 ...

  6. noip2018提高组初赛试题

    一.单项选择题(共 10 题,每题 2 分,共计 20 分: 每题有且仅有一个正确选项) \2. 下列属于解释执行的程序设计语言是( ). A. C B. C++ C. Pascal D. Pytho ...

  7. idea每次换行后光标都跑到最左边问题

    最进用idea时发现每次换行之后一段时间光标会自动跑到最左边,默认把我的首行空格删掉了 IDEA版本为:IntelliJ IDEA 2020.2.3 x64

  8. .NET Core Web APi类库如何内嵌运行?

    话题 我们知道在.NET Framework中可以嵌入运行Web APi,那么在.NET Core(.NET 6+称之为.NET)中如何内嵌运行Web Api呢,在实际项目中这种场景非常常见,那么我们 ...

  9. 当 EDA 遇到 Serverless,亚马逊云科技出招了

    近二三十年来,软件开发领域毫无疑问是发展最为迅速的行业之一. 在上个世纪九十年代,世界上市值最高的公司大多是资源类或者重工业类的公司,例如埃克森美孚或者通用汽车,而现在市值最高的公司中,纯粹的软件公司 ...

  10. CentOS7使用tar方式安装Containerd,配置文件介绍

    主机:centos 7.9 下载 官网GitHub上下载地址:https://github.com/containerd/containerd/releases 问题: 创建容器后,运行的时候报错: ...