Model模块
model模块与数据库交互,每一个模型都对应一个数据库中唯一的一张表,每一个模型都是一个Python类,继承于django.db.model.Models类,类中的类属性代表一个字段;
model字段类型:
- 以下包括:CharField、IntegerField、EmailField、DateField、DateTimeField
CharField(max_length=None, **options):
存储字符串,必须接受一个额外参数:max_length用于限制字符串长度,在数据库层和django表单验证中起作用;
IntegerField(**option) #
存储一个整数,从 -2147483648
到 2147483647
范围内的值是合法的
EmailField(max_length , **option):
一个CharField用来检查输入的email地址是否合法, 它使用 EmailValidator
来验证输入合法性。
DateField(auto_now=False,auto_now__add=False, **potions)
用Python中datetime.date实例表示的时间日期
auto_now:每次保存对象时,自动设置该字段为当前时间。
auto_now_add:当对象第一次创建时自动设置当前时间,想要修改此字段可以设置值为True。
这两个额外参数互相排斥,当这两个参数值为True时,将导致这个字段同时具有editable=False
和blank=True
这两个设置
DateTimeField():
用Python中datetime.datetime实例表示的时间日期,其他与DateField一样
model字段选项:
- 以下包括:verbose_name choice default editable
verbose_name=‘ ’
自述名,字段可读性跟高的名字,为了可读性最好自己设置
choices
它是一个可迭代的结构(比如,列表或是元组),由可迭代的二元组组成(比如[(A, B), (A, B) ...]
),用来给这个字段提供选择项。 如果设置了 choices ,默认表格样式就会显示选择框,而不是标准的文本框,而且这个选择框的选项就是 choices 中的元组;
每个元组的第一个元素存储在数据库中,第二个元素是使人理解的描述
default
默认值,可以是一个值(不可变对象)或者一个对象
editable
如果设为False
,则这个字段将不会出现在admin或者其他ModelForm
中