Django之Models(三) 常用字段类型和字段参数

本文详细介绍了Django ORM中各种数据类型的使用方法,包括字符、数字、日期时间、文件等字段类型,以及它们在数据库中的对应属性。通过具体实例,帮助读者掌握不同类型字段的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在前边的博客里已经介绍了如何使用Models,以及如何使用第三方数据库,

但例子中生成的数据表只有一种类型,但在面对多种类型的数据时又该怎么存储呢?

其实方法很简单,在我们继承的 models.Model 已经声明好了对应类,不同类对应数据库中不同属性。

下面介绍一些常用属性的对应类:

一  索引,字符,数字

1、models.AutoField  
          自增列   如果没有,默认会生成一个名称为 id 的列,
          如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。

2、models.BigAutoField
          自增列 当数据过多时可用 BigAutoField 代替 AutoField

3、models.CharField  
           字符串字段  单行输入,用于较短的字符串,如要保存大量文本, 使用 TextField。
           必须 max_length 参数,django会根据这个参数在数据库层和校验层限制该字段所允许的最大字符数。

4、models.TextField  
           字符串 ,一个容量很大的文本字段

5、models.IntegerField  
           整形   用于保存一个整数

6、models.SmallIntegerField  
          类似 IntegerField, 不过只允许某个取值范围内的整数。(依赖数据库)

7、models.BigIntegerField  
           长整形

8、models.PositiveIntegerField  
           类似 IntegerField, 但取值范围为非负整数(允许0值,可以理解为无符号整数)

9、models.PositiveSmallIntegerField  
           正smallInteger  正小整型字段,类似 PositiveIntegerField, 取值范围较小(数据库相关)

10、models.FloatField  
          浮点类型 = double   浮点型字段。 必须提供两个 参数:
                  max_digits:总位数(不包括小数点和符号)  
                  decimal_places:小数位数。

 

二  日期时间,文件

1、models.DateField  
          日期类型 YYYY-MM-DD   参数:
                auto_now = True 则每次更新都会更新这个时间;
                auto_now_add =True 则只是第一次创建添加,之后的更新不再改变。

2、models.DateTimeField  
           日期类型 YYYY-MM-DD hh:mm:ss   同DateField的参数

3、models.TimeField
          日期类型 hh:mm:ss   同DateField的参数

注意:具体的文件上传会在之后的篇幅展开说明

4、models.FileField
          文件上传字段。 一个必须参数:
                 upload_to : 一个用于保存上传文件的本地文件系统路径。
                 由于性能需求文件不会被直接存储到数据库中
                 非必需参数 storage  用来设定文件存储仓库

5、models.FilePathField          
          选择指定目录按限制规则选择文件,有三个参数
          path:必需参数,一个目录的绝对文件系统路径。 FilePathField 据此得到可选项目。
          match:可选参数, 一个正则表达式, 作为一个字符串, FilePathField 将使用它过滤文件名。
                       注意:这个正则表达式只会应用到 base filename 而不是路径全名。
          recursive:可选参数, 是否包括 path 下全部子目录,True 或 False,默认值为 False。

6、models.ImageField
          图像文件上传字段,继承了models.FileField,可以通过 upload_to 指定上传路径
          height_field,width_field 如果提供这两个参数,则图片将按提供的高度和宽度规格保存。

三  布尔,其他特殊类型

1、models.BooleanField   布尔类型=tinyint(1)   不能为空,Blank=True

2、models.NullBooleanField:类似 BooleanField, 不过允许 NULL 作为其中一个选项。

3、models.IPAddressField   字符串类型(ip4正则表达式)   一个字符串形式的 IP 地址

4、models.PhoneNumberField   一个带有合法美国风格电话号码校验的 CharField(格式:XXX-XXX-XXXX)

5、models.URLField   字符串,地址正则表达式   用于保存URL。若 verify_exists 参数为 True (默认),
                                      给定的 URL 会预先检查是否存在(即URL是否被有效装入且没有返回404响应)

6、models.SlugField   减号、下划线、字母、数字   它们通常用于URLs。

7、models.XMLField  
            XML字符字段,校验值是否为合法XML的 TextField,必须提供参数:
            schema_path:校验文本的 RelaxNG schema 的文件系统路径。

8、models.BinaryField   ---二进制

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值