在Django中model是数据的单一、明确的信息来源。它包含了你存储的数据的重要字段和行为。通常,一个模型(model)映射到一个数据库表。
每个模型都是一个Python类,它是django.db.models.Model的子类。模型的每个属性都代表一个数据库字段。
综上所述,Django为您提供了一个自动生成的数据库访问API。如下图所示:
图片来自课工场郑州金水路接下来我们就正式学习如何使用Django的ORM框架帮助我们开发PythonWeb程序,首先需要使用ORM模型迁移功能。
2、配置并完成ORM模型迁移ORM分为两种:
CodeFirst:即正向迁移,先写代码,执行代码创建数据库表结构
DBFirst:即反向迁移,数据库里先创建数据库表结构,根据表结构生成类,根据类操作数据库
主流的orm都是codefirst。django的orm也是codefirst,所以学的时候,本质就分为两块:
根据类自动创建数据库表
根据类对数据库表中的数据进行各种操作
下面我们通过两个任务来分别学习正向迁移和反向迁移两种操作过程。
正向迁移:
任务1:正向迁移:在现有的Python环境中实现将employee模型正向迁移到mysql数据库。
前置条件:在您的计算机上已经安装了pythonWeb的相关环境(我这里使用的是.8、Django.0.4),另外还需要导入PyMySQL和mysqlclient两个驱动程序,具体步骤如下:
1)手动创建mysql数据库,例如db_Django
2)项目准备:
)打开项目中的settings.py主配置文件修改数据库相关的配置
4)注册应用
注意:此时启动项目,如果报错:nomodulenamedMySQLdb。这是因为django默认你导入的驱动是MySQLdb,需要使用PyMySQL,所以,我们只需要找到项目名文件下的__init__.py文件,在里面写入:
如果报错如下:
则需要在上述__init__.py文件中加入如下代码即可:
如果想打印orm转换过程中的sql,需要在settings中进行如下配置:
1)在子应用employee中的models.py文件中写入ORM模型类:
2)使用ORM迁移命令创建表:
先使用makemigrations将应用中的models.py文件中的更改生成文件并保存到同级目录(migrations)下,默认命名为:"_initail.py":
再使用migrate将上一步migrations目录下生成的"0_initial.py"文件(里面记录了model.py文件的改动)同步到数据库并生成相应的表:
执行完毕后,再次查询数据库,可见生成的表如下:
迁移命令总结:
makemigrations:将模型生成迁移脚本。模型所在的app,必须放在settings.py中的INSTALLED_APPS中。
migrate:将新生成的迁移脚本。映射到数据库中,创建新的表或者修改表的结构。