一、模型层介绍
1、作用:负责跟数据库之间进行通信。
2、django通过驱动mysqlclient与mysql数据库进行通信,所以需要先安装。版本需要是1.3.13以上。
如果直接安装报错,可以直接从官网下载whl文件。
二、django与mysql关联
1、django默认带有sqlite3数据库,但是常规项目中使用mysql较多,所以以使用mysql为例进行演示。
2、创建数据库
(1)安装并mysql数据库;
(2)创建数据库,一般建议库名和app名称保持一致。语句:create databse music music default charset utf8;。一定要指定默认字符集是utf8,否则会无法识别英文。
在SQLyog中查看,确实已经创建。
(3)在seetting.py中进行数据库的配置。
ENGINE:指定的数据库引擎,支持sqlite3\oracle\mysql等,此处为mysql;
NAME:所要使用的库名,(1)中新建的是库music;
USER、PASSWORD、HOST、PORT则是创建数据库的基本信息。
三、模型的定义
1、模型的定义如下:
2、模型本质是一个类,可以节省操作数据库所需要的的一系列sql语句操作,只需要遵循类的相关属性和操作方法即可实现。
四、ORM框架
1、定义
2、ORM和数据库之间的映射
五、ORM实战实例
1、创建一个新的应用,名称为bookstore,并注册;
2、在bookstore模块下的models.py文件中添加ORM。在models.py中一个类代表一个数据表,类中的属性即表的字段名,对于属性的定义即表字段的定义。
3、迁移数据库
(1)我们期望在model中定义了表、字段字段之后,能够将变化同步到数据库中,这个同步的过程不是自发进行的,而需要去手动执行,因此称之为数据库迁移(前文在setting中定义数据库的库、连接信息等,此处同步的信息将同步到配配置的库中)
(2)生成迁移文件
注意:当有多个应用时,需要在makemigrations后面指定app的名字
(3)执行迁移脚本。指令:python manage.py migrate
注意:执行的迁移程序时,django会将系统默认自带的一些表格也创建到数据库中。
(4)查看创建的表信息。
注意:定义的表名为Book,但实际创建的表名为bookstore_book。即“应用名+类名”。统一成小写。创建的其他表信息为django自带的。
六、总结
1、模型层介绍
2、配置mysql
3、ORM与创建模型类