定义模型
在模型中定义属性,会生成表中的字段
django会为表自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则djang不会再生成默认的主键列
定义属性
定义属性时,需要定义字段类型
• 使用方式:
1)导入from django.db.import models
2)通过models.Field创建字段类型的对象,赋值给属性
• 对于认为重要数据都做逻辑删除,不做物理删除,实现方法是定义isDelete属性,类型为BooleanField,默认值为False
字段类型
AutoField:通常不指定,一个主键字段将自动添加到模型中
BooleanField:true/false字段,此字段的默认表单控制是CheckboxInput
NullBooleanField:支持null、true、false三种值
CharField(max_length=字符长度):字符串,默认的表单样式是TextInput
TextField:大文本字段,一般超过4000使用,默认的表单控件是Textarea
IntegerField:整数
FloatField:浮点数
TimeField/DateField/DateTimeField:
• 参数auto_mow:每次保存对象时,自动设置该字段为当前时间,用于最后一次修改的时间戳,它总是使用当前日期,默认为false
• 参数auto_now_add:当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false
FileField:上传文件字段
ImageField:上传图片字段
字段选项(实现对字段的约束)
在字段对象时通过关键字参数指定
对比:null是数据库范畴的感念,blank是表单验证范畴的
null:如果为True,将以NULL存储到数据库中,默认值是False(即默认字段不为空)
blank:如果为True,则该字段允许为空白,默认值为False
db_column:字段的名称,如果未指定,则使用属性的名称
db_index:若值为True,则在表中会为此字段创建索引
default:默认值
primary_key:若为True,则该字段会成为模型的主键字段
unique:如果为True,这个字段在表中必须有唯一值
元选项
在模型类中定义类Meta,用于设置元信息
• 元信息db_table:定义数据表名称,推荐使用小写字母,数据表的默认名称
• ordering:对象的默认排序字段,获取对象的列表时使用,接收属性构成的列表
• 字符串前加-表示倒序,不加-表示正序
• 排序会增加数据库的开销