Django开发博客系统(04-常用字段与属性)

Django models中常用的字段类型

数值型

这些类型都是数值相关的.

AutoField int(11). 自增主键,Django Model默认提供,可以被重写.完整定义是

id = models.AutoField(primary_key=True)

BooleanFueld tinyint(1). 布尔类型字段,一般用于记录状态标记.

DecimalField decimal. 开发对数据精度要求高的业务时考虑使用,比如做支付相关,金融相关.定义时需要指定精确到多少位,例如

case = models.DecimalField(max_digits=8, decimal_places=2, default=0)

定义长度为8, 精度为2的数字.

IntegerField int(11) 整型,用于保存一个整数

PositiveIntegerField 只包含正整数

SmallIntegerField smallint. 小整数时会用到

字符型

这些字段都是用来存储字符数据的,对应到MySQL中有两种类型:longtext和varchar.

CharField varchar  基础的varchar类型

URLField 继承自CharField,实现了对URL的特殊处理,会预先检查URL是否存在且有效

UUIDField char(32) 用来存放生成的唯一id

EmailField 类似于URLField,对E-mail的特殊处理

FileField 同URLField, 多了对文件的特殊处理,必须参数是upload_to

TextField longtext 一般用于存放大量文本内容,比如新闻正文,博客正文.

ImageField 继承自FileField, 会判断路径是否是图片,可以设置图片保存的宽高(width_file,height_field)

FilePathField 选择指定目录按限制规则选择文件

  • path:必须参数,一个目录的绝对路径
  • match:可选参数,一个正则表达式,用它来过滤文件名
  • recursive:可选参数,是否包括path下的全部子目录,默认为False

日期类型

DateField  日期类型YYYY-MM-DD

  • auto_now = True每次更新都会更新这个时间
  • auto_now_add = True则只是第一次创建添加,之后更新不做改变

DateTimeField 日期类型 YYYY-MM-DD hh:mm:ss 参数与DateField相同

TimeField 日期类型hh:mm:ss

关系类型

ForeignKey 一对多

OneToOneField 一对一

ManyToManyField 多对多,会创建一个中间表.

Model常用参数

null 用于设定在数据库层面是否允许为空

blank 针对表单提交时是否允许为空

  • 个人理解,null=True在数据库中是NULL,而blank=True则是在表单提交时可以为空,但在数据库中则是''.在文章填写摘要时就需要用到这个.

choices 配置后,在admin页面可以看到对应的可选项展示

db_column 可以指定Model中的某个字段对应数据库中的哪个字段

db_index 索引配置.

default. 默认值

editable 是否可编辑, 默认为True, 如果不想把此字段展示到页面上则可以配置为False

error_messages 字典格式,用来自定义字段值校验失败时的异常提示.key可以是null, blank, invalid, invalid_choice, unique和unique_for_date.

help_text 字段提示语.在页面对应字段下方会展示

primary_key 主键.

unique. 唯一约束

unique_for_date 针对date的联合约束

verbose_name. 字段对应的展示文案

validators. 自定义校验逻辑

此处只是一些简单的总结,同时可能会有部分地方有错误,毕竟我知识有限,完整资料请参考官方文档

猜你喜欢

转载自www.cnblogs.com/ylnx-tl/p/12604564.html