基础字段
- BooleanField()
- 数据库类型:tinyint(1)
- 编程语言中:使用True和False来表示
- 在数据库中:使用1和0来表示
- CharField()
- 数据库类型:varchar
- 注意:必须指定max_length参数值
- DateField()
- 数据库类型:date
- 作用:表示日期
- 参数:
* auto_now:每次保存对象时,自动设置改字段为当前时间(取值True/False)
* auto_now_add:当对象第一次被创建时自动设置当前时间(True/False)
* default: 设置当前时间(取值:字符串格式时间如:‘2019-6-1’) #可插入时改,且自动改格式
* 以上只能三选一
- DateTimeField()
- 数据库类型:datetime(6)
- 作用:表示日期和时间
- 参数通DateField
- FloatField()
- 数据库类型:double
- 编程语言中和数据库中都是用小数表示值
- DecimalField()
- 数据库类型:decimal(x,y)
- 编程语言中:使用小数
- 数据库中:使用小数
- 参数
- max_digits:位数总数
- decimal_places:小数点后的数字数量
- EmailField()
- 数据库类型:varchar
- 编程语言和数据库中使用字符串
- 存值和更新是有正则检查,不是邮箱格式不能存
- IntegerField()
- 数据库类型:int
- 编程语言和数据库中都是整数
- ImageField()
- 数据库中类型:varchar(100)
- 作用:在数据库中保存图片的路径
- 编程语言和数据库中使用字符串
- TextField()
- 数据库类型:longtext
- 作用:表示不定长的字符数据
字段选项
允许出现多个字段选项,多个选项之间使用,隔开
- primary_key
如果设置为True,表示该列为主键,如果指定一个字段为主键,则此数据表不会自动创建ID字段 - blank
如果设置为True,字段可以为空。设置False时,字段是必须填写的。(后台admin控制和null不同) - null
如果设置为True,表示该列值可以为空
默认为False,如果此选项为False,建议加入default选项设置默认值 - default
设置所在列的默认值,如果字段选项null=False建议添加此项
新增字段必须有default - db_index
如果为True,表示为该列增加索引 - unique
如果设置为True,表示该字段在数据库中的值必须是唯一的(不能重复出现) - db_column
指定列的名称,如果不指定的话采用属性名作为列名 - verbose_name
设置为True在admin界面上的显示名称
Meta类
使用内部meta类来给模型赋予属性,Meta类下you很多内建的类属性,可对模型类做一些控制
实例:
class Book(models.Model):
title = models.CharField('书名', max_length=50, default='')
price = models.DecimalField('价格', max_digits=7, decimal_places=2, default=0.0) # 00000.00
info = models.CharField('描述', max_length=100, default='')
class Meta:
db_table = 'book' # 可以改变当前模型类对应的表名