一、Model的作用
在Django的框架设计中采用了MVT模型,即Model,Viewer,Template
Model相对于MVC框架来说就相当对数据处理层,它主要负责与数据的交互,在使用Django框架设计应用系统时,需要注意的是Django默认采用的是ORM框架中的codefirst模型,即面向对象的开发方式(如Hibernate),也就是说开发人员只需要专注于代码的编写,而不需要过多的关注数据库层面的东西,把开发人员从数据库中解放出来
Django会根据Model类生成一个数据库镜像文件,然后再使用该镜像文件生成数据库,同时该文件将记录与数据库同步版本的变化,所以在使用Django进行开发时不要手工去修改数据库,这样会造成Django框架的版本记录不正确,从而无法正确的同步数据模型与数据库的内容
二、Model的创建
创建项目完成后,会生成settings.py文件,用于配置项目相关信息,此处可以修改数据库配置,本例使用mysql数据库
创建应用完成后,会生成models.py文件,此处用于创建Model,如下:
from django.db import models # 定义模型 class BookInfo(models.Model): btitle = models.CharField(max_length=20) bput_date = models.DateTimeField(db_column='pub_date') bread = models.IntegerField(default=0) bcommet = models.IntegerField(null=False) isDelete = models.BooleanField(default=False) # 定义模型 class HeroInfo(models.Model): hname = models.CharField(max_length=10) hgender = models.BooleanField(default=True) hcontent = models.CharField(max_length=1000) isDelete = models.BooleanField(default=False) hBook = models.ForeignKey(BookInfo, on_delete=models.CASCADE)
2.1、Model字段类型
字段类型被定义在django.db.models.fields目录下,字段类型包含如下:
- AutoField:一个根据实际ID自动增长的IntegerField,通常不指定,如果不指定,一个主键字段将自动添加到模型中
- BooleanField:true/false 字段,此字段的默认表单控制是CheckboxInput
- NullBooleanField:支持null、true、false三种值
- CharField(max_length=字符长度):字符串,默认的表单样式是 TextInput
- TextField:大文本字段,一般超过4000使用,默认的表单控件是Textarea
- IntegerField:整数
- FloatField:用Python的float实例来表示的浮点数
- TimeField:使用Python的datetime.time实例表示的时间,参数同DateField
- DateTimeField