本节将介绍Django框架模型的基础知识,主要包括字段类型、索引,以及Model类等方面的内容。
Django模型主要用来关联数据库,相当于一个ORM(对象关系映射)系统。Django框架提供了对各种主流数据库的友好支持,这些数据库包括PostgreSQL、SQLite、MySQL、MariaDB和Oracle等。
Django模型为数据库提供了统一的API调用接口,开发人员直接根据项目业务需求选择不同的数据库。Django模型包含储存数据的字段与行为,一般每个模型都会映射一个数据库表。
Django框架与数据库相关的代码写在models.py文件中,相关的配置信息在settings.py文件中完成即可(可参见第2章的内容)。将配置信息写在settings.py文件中的好处是,models.py文件只负责关注业务代码,无须关心具体的数据库类型。
ORM(Object Relational Mapping)是指对象关系映射,是一种程序设计与软件工程技术。ORM可以用于实现在面向对象编程中不同类型系统之间的数据转换。
ORM从功能上来讲,相当于是实现了一个在编程语言中可以使用的“虚拟对象数据库”。此时,ORM就相当于是一个中间层的逻辑数据,连接着上层的编程语言与底层的实体数据库。
Django模型的ORM是基于Python语言实现的。Django模型在业务逻辑层和实体数据库之间充当着桥梁的作用,通过使用描述对象和实体数据库之间的映射的元数据,将程序中的对象自动持久化到实体数据库中。
在Django官方文档中,关于Django模型有如下的说法:
● 一个Django模型相当于是一个Python的类,该类继承自django.db.models.Model。
● Djnago模型类的每个属性都相当于一个数据库的字段。
● Django模型为开发人员自动生成访问数据库的API接口。
MySQL是Web应用开发中比较常用的关系型数据库,本小节以MySQL数据库为例,详细介绍在Django模型中使用数据库的方法。另外,如果读者还没有用过MySQL数据库,那么就要花一些时间先熟悉一下MySQL了。
如果想在Django模型中使用MySQL数据库,需要先安装Python语言解释器下的MySQL客户端驱动。MySQL客户端驱动有很多种,这里选择pymysql驱动。安装时使用pip工具,具体命令如下:
python –m pip install pymysql
安装过程中如果出现问题,请耐心多试几次。安装完成后,命令行给出“安装成功”的提示信息,如图3.1所示。目前安装的pymysql版本是0.10.1,该版本是当前的最新版。
图3.1 安装pymysql驱动
接下来,为了进一步验证pymysql驱动是否成功安装,使用“pip list”命令查看Python的第三方插件列表,如图3.2所示。图中箭头提示信息给出的版本号与图3.1中描述的是一致的,证明pymysql驱动确实已经安装成功了。
图3.2 查看pymysql驱动
其实,除了pymysql驱动之外,还有一个mysqlclient驱动也非常受欢迎。安装mysqlclient驱动相对烦琐一些,在线安装经常会出问题。不过,我们也可以将mysqlclient驱动包下载到本地进行安装,如图3.3所示。
图3.3 安装mysqlclient驱动
如图3.3中的箭头所示,提示信息显示mysqlclient驱动已经安装成功了,相应的版本号为1.4.6。
pymysql驱动是由纯Python语言编写的,因此与Python解释器契合程度最好。而mysqlclient驱动的执行速度很快,性能优势很明显。