为了能够学会使用Django模型,本节通过构建一个实际的Django模型来帮助读者尽快入门。
既然Django模型实现了ORM功能,那么它就是对数据库实例的描述和实现。下面,我们通过一个简单的实例进行讲解。
如果需要设计实现一个简单的个人信息模型(名称为PersonInfo),我们一般会定义这个个人信息模型的模型名称、字段名称、字段类型等参数,如表3.1所示。
表3.1 个人信息模型(PersonInfo)数据表
根据表3.1中定义的模型数据,设计实现的Django模型代码如下:
【代码3-1】
【代码分析】
在第01行代码中,通过调用django.db模块导入了models对象(Django模型对象)。
第03~06行代码定义了一个PersonInfo类,并通过models对象调用CharField()方法定义了name(姓名)、gender(性别)和age(年龄)3个字段,且每个字段的长度不一。这3个字段(name、gender和age)都相当于类(PersonInfo)的属性。这个类属性其实就相当于实体数据库中的数据项(也称数据列)。
【代码3-1】所定义的Django模型,最终会在底层数据库中创建一张数据库表(Table),具体代码如下:
【代码3-2】
【代码分析】
在第01行代码中定义的表名称myapp_ personinfo是自动从某些模型元数据中派生出来,用户也可以自定义表名称。
在第02行代码中,id字段(索引)会被自动添加,这也是MySQL数据库自动生成的。
定义好了Django模型,只有通知Django框架要使用该模型后,该模型才能够生效。具体方式是修改settings.py配置文件中的INSTALLED_APPS配置项,在该配置项中添加models.py文件中定义的Django模块名称。
下面举一个简单的配置例子。假如新建的Django模型位于项目中的myapp应用中,该myapp应用是通过django-admin manage.py startapp myapp命令创建的,则项目的settings.py配置文件中的INSTALLED_APPS配置项应该设置如下:
【代码3-3】
【代码分析】
在第03行代码中,myapp应用就是通过调用django-admin manage.py startapp myapp命令创建的。