为了学会使用Django模型,本节通过构建一个实际的Django模型(Model)来帮助读者尽快入门。
我们知道Django模型实现了ORM功能,其就是对数据库实例的描述和实现。下面,我们通过一个简单的实例进行讲解。
如果需要设计实现一个简单的个人信息模型(假设名称为PersonInfo),我们一般会定义这个个人信息的模型名称、字段名称及字段类型等参数。具体内容参考表3.1。
表3.1 个人信息模型(PersonInfo)数据表
通过表3.1中定义的模型数据来设计实现的Django模型代码如下:
【代码3-1】
【代码分析】
● 第01行代码中,通过调用django.db模块导入了models对象(Django模型对象)。
● 第02~05行代码定义了一个类(PersonInfo),并通过models对象调用CharField()方法定义了name(姓名)、gender(性别)和age(年龄)共三个字段,且每个字段的长度不一。
● 第03~05行代码定义的三个字段(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”命令创建的。