【7.1】Django----ORM简介与MySQL的安装使用

一、ORM简介

  对象关系映射Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。也就是我们在设计数据模型时不在需要依赖特定的数据库,可以通过一些简单的配置就可以轻松更换数据库,减轻开发人员的工作量,不需要面对因数据变更而导致的无效劳动。

1.1 ORM的作用

  • 建立模型类与表之间的对应关系,允许我们通过面向对象的方式来操作数据库
  • 根据设计的模型类生成数据库中的表格
  • 通过简单的配置就可以进行数据库的切换

1.2 ORM的优点

  • 只需要面向对象编程,不需要向数据库中编写代码
    • 对数据库的操作都转化为对类属性和方法的操作
    • 不用编写各种数据库的SQL语句
  • 实现了数据模型与数据库的解耦,屏蔽了不同数据库操作上的差异
    • 不关注于使用的是Mysql、Oracle等数据库的内部细节
    • 通过简单的配置就可以轻松更换数据库,而不需要再修改代码

1.3 ORM的缺点

  • ORM只能做到对应数据表的操作(增、删、改、查)
  • 无法对数据库进行操作,需要我们提前先创建一个数据库
  • 对于复杂业务,使用成本较高
  • 根据对象的操作转换成SQL语句,根据查询的结果转化成对象,在映射过程中有性能损失

1.4 Django中的ORM

# 在Django的ORM中通过类来对应sql的表,一个类对应创建一个表
class Book(models.Model):
    pass

二、MySQL下载与安装

三、DJango连接数据库

  由于Django里面的ORM组件不能够对数据库本身进行创建与管理,只能依靠本地的数据库来创建一个数据库,通过Django中的settings.py来进行连接,然后才可以通过ORM在数据库里面创建相关的表,进而实现表结构的增删改查。

3.1 MySQL新建数据库

3.1.1 MySQL设置默认编码

  • utf8是使用1~4个字节,一种变长的编码格式,字符编码
  • mb4就是most bytes 4的意思,用来兼容四字节的unicode,即使用4个字节来表示完整的 UTF-8
  • utf8mb4utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。为了节省空间,一般情况下使用utf8也就够了。要在 Mysql中保存 4字节长度的 UTF-8字符,需要使用utf8mb4字符集,但只有5.5.3 版本以后的才支持。为了获取更好的兼容性,应该总是使用 utf8mb4而非 utf8。对于CHAR 类型数据,utf8mb4会多消耗一些空间,根据Mysql官方建议,使用 VARCHAR 替代 CHAR

创建数据库时设置编码

永久修改默认的字符集为utf8mb4

【my.ini部分配置项介绍】【win10 mysql8 my.ini配置文件】

  • ① 在C:\Program Files\MySQL\MySQL Server 8.0目录下创建一个my.ini文件
  • ② 用记事本打开然后修改配置文件为:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
# basedir=E:\Software\mysql-8.0.19-winx64
# 设置mysql数据库的数据的存放目录,在安装mysql-5.7.30-winx64.zip版本的时候,
# 此配置不可添加,否则mysql将无法启动。
# datadir=E:\Software\mysql-8.0.19-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 关闭ssl
# skip_ssl
# 配置时区
default-time_zone='+8:00'
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
  • utf8换为utf8mb4,此时字符集更多,重启mysql服务器
win + r
services.msc
# 管理员模式下运行
net stop mysql80
net start mysql80
  • ③ 查看字符集是否更改成功
# 进入到mysql的bin目录下
cd C:\Program Files\MySQL\MySQL Server 8.0\bin
# 登录mysql
mysql -u root -p
# 然后输入密码
# 查看字符集是否修改成功
# 方式一
mysql> \s
# 方式二
mysql> show variables like 'character%';

3.1.2 MySQL新建数据库

  • cd MySQL路径(进入安装的MySQLbin中)
  • mysql -u root -p(启动MySQL的入口)
  • ③ 输入设定的密码,登录进去
  • create database orm_test数据库(创建数据库)
  • show databases(查看创建的所有数据库,并检查数据库是否创建成功)

3.2 Django连接MySQL数据库

  • settings.py中,修改默认的DATABASES,代码如下:
DATABASES = {
    'default':{
        'ENGINE':'django.db.backends.mysql', # 设置Django连接的数据库类型
        'NAME':'orm_test', # 需要连接的数据库名称,连接前需要先创建好
        'USER':'root', # 连接数据库的用户名
        "PASSWORD":'123456', # 连接数据库的密码
        'HOST':'127.0.0.1', # 连接主机,默认为本机
        'PORT':3306, # 连接的端口号,默认为3306
    }
}
  • 通过修改默认配置后即可连接成功,当然也可以连接到服务器上的其它可使用的数据库

3.3 Django中ORM映射

  • 模型是一个Python类,它是由Django.db.models.Model派生出来的子类
  • 一个模型类代表数据库中的一张数据表
  • 模型类中每一个类属性都代表数据库中的一个字段
  • 模型是数据交互的接口,是表示和数据的方法和方式
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

而又何羡乎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值