Django Model模型层——模型字段类型详解

 Pala   2017-08-10 16:03   196 人阅读  0 条评论

普通字段是指模型中除外键关系外的数据字段属性。数据字段为Django使用模型时提供如下信息。

l   在数据库中用什么类型定义模型字段,比如INTEGER、VARCHAR等。

l   用什么样的HTML标签显示模型字段,比如<input type=”radio”>等

l   需要什么样的HTML表单数据验证。

所有数据字段的属性必须继承自抽象类django.db.models.Field,开发则可以定义自己的继承自该类的字段类型,也可以使用Django预定义的一系列Field子类。常用的Django预定义字段类型描述如下:

l   AutoField:一个自动递增的整型字段,添加记录时它会自动增长。AutoField字段通常只用于充当数据表的主键:如果在模型中没有指定主键字段,则Django会自动添加一个AutoField字段。

l   BigIntegerField:64位整型字段。

l   BinaryField:二进制数据字段,只能通过bytes对其进行赋值。

l   BooleanField:布尔字段,相对应的HTML标签是<input type=”checkbox”>。

l   CharField:字符串字段,用于较短的字符串,相对应的HTML标签是单行输入框<input type=”text”>

l   TextField:大容量文本字段,相对应的HTML标签是多行编辑框<textarea>。

l   CommaSeparatedIntegerField:用于存放逗号分隔的整数值,相对于普通的CharField,它有特殊的表单数据验证要求。

l   DateField:日期字段,相对应的HTML标签是<input type=”text”>

n  auto_now      当对象呗保存时,将该字段的值设置为当前时间;

n  auto_now_add      当对象首次被创建时,将该字段的值设置为当前时间

l   DateTimeField:类似于DateField,但同时支持于时间的输入。

l   DurationField:存储时间周期,用Python的timedelta类型构建。

l   EmailField:一个带有检查Email合法性的CharField。

l   FileField:一个文件上传字段。在定义本字段时必须时传入参数upload_to,用于保存上传文件的服务器文件系统的路径。这个路径必须包含strftime formatting,该格式江北上传文件的date/time替换。

l   FilePathField:按目录限制规则选择文件,定义本字段必须传入参数path,用以限定目录。

l   FloatField:浮点型字段。定义本字段时必须传入参数max_digits和decimal_places,用于定义总位数(不包括小数点和符号)和小数位数。

l   ImageField:类似于FileField,同时验证上传对象是否是一个合法图片。他有两个可选参数:

n  height_field

n  width_field

如果提供这两个参数,则图片将按提供的高度和宽度规格保存。该字段要求安装Ptyhon Imaging库。

l   IntegerField:用于保存一个整数。

l   IPAdreddField:一个字符串形式的IP地址,比如“129.23.250.2”

l   NullBooleanField:类似于BooleanField,但比其多一个None选项。

l   PhoneNumberField:带有美国风格的电话号码校验的CharField(格式为XXX-XXX-XXXX)。

l   PositiveIntegerField:只能输入非负数的IntegerField。

l   SlugField:只包含字母、数字、下划线和连字符的输入字段,它通常用于URL。


本文地址:http://chenxm.cc/post/259.html
版权声明:本文为原创文章,版权归 Pala 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?