一、模型层
模型层负责和数据库之间进行通信
 
 
二、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. 喜讯:“行走的文档” 当选 Apache DolphinScheduler Committer啦

    点击上方蓝字关注 Apache DolphinScheduler Apache DolphinScheduler(incubating),简称"DS", 中文名 "海豚调 ...

  2. 都说Dapper性能好,突然就遇到个坑,还是个性能问题

    本来闲来无事,准备看看Dapper扩展的源码学习学习其中的编程思想,同时整理一个自己代码的单元测试,为以后的进一步改进打下基础. 突然就发现问题了,源码也不看了,改了好久. 测试Dapper.Lite ...

  3. Luogu2543[AHOI2004]奇怪的字符串 (动态规划 LCS)

    04年的省选这么water吗,开个滚动数组算了 #include <iostream> #include <cstdio> #include <cstring> # ...

  4. 项目一共30个模块,你叫我maven版本一个个手动改?

    大家好呀,我是铂赛东,一个乱入公众号博主的开源作者.今天分享一个maven小技巧,希望帮助到大家. 之前有个群友私聊问我,如何快速统一去更改项目中所有的maven版本号,他说之前都是手动一个个去修改, ...

  5. 数据库简介与MySQL简介

    MySQL简介 数据存取演变史 起源······文本文件 在最开始使用计算机都没有相应的规范我们的数据一般都是自己起一个名字然后就根据这个路径存储数据并且存储数据的格式也都五花八门就产生了很多奇奇怪怪 ...

  6. html js 导出excel表格

    这个使用js 导出excel,可以集成其他语言,可以html,php,asp ,java 等,自己喜欢用那种语言就用哪种,使用非常方便.js是使用tableExport.js ,jquery-3.2. ...

  7. 字节跳动端智能工程链路 Pitaya 的架构设计

    Client AI 是字节跳动产研架构下属的端智能团队,负责端智能 AI 框架和平台的建设,也负责模型和算法的研发,为字节跳动开拓端上智能新场景.本文介绍的 Pitaya 是由字节跳动的 Client ...

  8. Linux 破解mysql密码(详细步骤)

    当mysql密码忘记时 [root@master ~]# mysql -uroot -p1 mysql: [Warning] Using a password on the command line ...

  9. 如何使用Arthas定位问题

    在我们日常的工作中,经常会遇到一些线上才会遇到的问题.Arthas无疑是我们在工作中,定位线上问题的神奇.下面,我将介绍一下我们在工作中经常用到的一些功能. dashboard 首先我们可以通过das ...

  10. 彻底掌握Makefile(二)

    彻底掌握Makefile(二) 前言 在前面的文章彻底掌握Makefile(一)当中,我们简要的介绍了一些常见的makefile使用方法,在本篇文章当中我们将继续介绍一些makefile当中的常见用法 ...