Django:模型_ORM常用Field介绍

模型常用属性

1、在Django中定义了一些Field来与数据库表中的字段类型进行映射:即使用Field来定义表中列值的数据类型

2、在model中添加字段的格式一般为:field_name = field_type(**field_options)

 

 

AutoField

1、映射到数据库中是int类型,可以有自动增长的特性。支持最大长度为11的整数

2、一般不需要使用这个类型:如果不指定主键,那么模型会自动的生成一个叫做id的自曾主键。当然,如果想执行一个其他名字的并且具有自动增长的主键,使用AutoField也是可以的

 

BigAutoField

自增长类型,用法同AutoField。映射到数据库中会成为20位的bigint类型

 

CharField

1、字符串类型,映射到数据库中会转换成varchar类型,使用时必须传入max_length属性用于定义该字符串的最大长度

2、如果存入的字符串长度会超过254个字符,就不建议使用CharField了,此时建议使用TextField

 

BooleanField

1、在模型层面接收的是布尔类型(True/False),映射到数据库中会变成长度只有1位的tinyint类型(1/0)

2、这个Field不接受null参数,要想使用可以为null的布尔类型的字段,就要使用NullBooleanField

3、比如我们在设计一个数据库表,需要标记数据是否被删除时,就可以用到这个Field类型:在实际中一般不会真正的删除一个数据,只会在数据库中标记这个数据是"被删除"状态(数据还存在)

例1:
⑴编辑模型类

⑵查看表结构

⑶编辑视图:访问步骤就没截图了

⑷查看插入的数据

注:
1、在Django模型中:如果在定义字段的时候,如果没有指定null=True的话,那么默认情况下,null=False,即不能为空

2、上面例子中我们也没有设置null=True,但是能正常插入user1是因为我们在定义remove字段的时候设置了默认值:remove = models.BooleanField(default=False)

3、如果上面例子中在定义remove字段时,没有设置null=True和默认值时,就不能插入user1了:remove = models.BooleanField()

4、BooleanField没有null参数,如果需要设置null参数的话可以使用NullBooleanField

 

DateTimeField

1、日期时间类型,在python中对应的是datetime.datetime类型,在映射到数据库中也是datetime类型。使用这个Field可以传递以下几个参数:
    ⑴auto_now=True:在每次这个数据保存的时候,都使用当前的时间。比如作为一个记录修改日期的字段
    ⑵auto_now_add=True:在每条数据第一次被添加进去的时候,使用当前的时间。比如作为一个记录第一次入库的字段

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值