11.字段类型

上一章我们使用了字符串与数字类型的数据,下面我们统一介绍一下常用的字段类型

在下面创建字段的时候,最开始的中文都是不必要的,我们可给可不给

目录

1 布尔类型 BooleanField()

2  字符串类型 CharField()

3  日期类型 DateField()

4  时间类型 DateTimeField()

5  浮点数类型 FloatField()

6  数字类型 DecimalField()

7  邮箱类型 EmailField()

8  整数类型 IntegerField()

9  图片路径类型 ImageField()

10  长字符类型 TextField()


1 布尔类型 BooleanField()

在数据库中的名字为tinyint(1),在python中使用True或False表示值,在数据库中用1或0表示值

我们创建一个看一下

生成中间文件和数据库迁移我就省略了,我们直接看数据库的内容

2  字符串类型 CharField()

在数据库中类型为varchar,必填属性是max_length

这个上面创建过了,在这里就不创建了

3  日期类型 DateField()

在数据库中类型为date,有三个参数

  • auto_now:取值为True或False,如果是True则 每次保存对象(ORM中的对象)时,自动设置该字段为当前时间
  • auto_now_add:取值为True或False,如果是True则 对象第一次被创建时,保存对象创建的时间
  • default:取值是字符串形式,比如2022-2-27

当设置一个DateField时,以上三个参数只能三选一

4  时间类型 DateTimeField()

在数据库中类型为datetime(6),比起DateField()它还能表示时间

参数与DateField()一致

一般一个表中会有两个字段,一个是创建的时间,使用auto_now_add。另一个是上一次更新的时间,使用auto_now

如果你使用DateTimeFileld的auto_now=True

并且在视图中不做任何处理直接返回数据库中的内容

那么在前端就会返回这样一种数据

这样前端操作起来就会很麻烦,你可以用strftime()给他搞成前端想要的格式

  • %Y是年,%m是月,%d是日,%H是小时,%M是分钟.%S是秒

这样前端处理起来就比较舒服

5  浮点数类型 FloatField()

在数据库中类型为double

这里设置的时候需要有default

6  数字类型 DecimalField()

在数据库中类型为decimal(x,y),x是最大位数(包括小数点后面的数),y是小数点后的位数

必填属性为max_digits(最大位数)与decimal_places(小数点后位数)

上面创建过了,这里不再搞了

7  邮箱类型 EmailField()

在数据库中类型为varchar(254),这个实际上就是字符串,只不过我们搞出来一个field让他存邮箱

我们目前随便给一个默认值,它也不会出问题,但是必须要给一个default

8  整数类型 IntegerField()

在数据库中类型为int

default是必须要给的

9  图片路径类型 ImageField()

在数据库中类型为varchar(100),是放图片路径用的

这个在生成中间文件的时候需要PIL的库

我们安装一下

实际上也是个字符串,我们目前随便给一个

安装PIL后就可以了

使用ImageField()在admin后台中会这样显示

如果你选择的图片编码方式不对(我当前是直接修改的尾缀),就会出现这种错误

用格式工厂转一下之后就可以成功添加了

在视图中如果直接引用图像路径会返回给你一个图片路径的对象,使用图片路径对象的url属性可以获取到具体的地址

10  长字符类型 TextField()

在数据库中类型为longtext,放不定长的字符数据

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值